Rajmund
Aktives Mitglied
Thread Starter
- Dabei seit
- 15.04.2006
- Beiträge
- 575
- Reaktionspunkte
- 75
Hallo,
meine Frage dreht sich nicht um SQL im engeren Sinne, sondern es geht eher allgemein um Client<->Webdatenbank.
In meinem Programm (Java), welches lokal auf dem Rechner des Anwenders läuft, gibt es eine Eingabemaske mit drei Feldern (Komponist und zwei für den Namen eines Musikstückes). Der Anwender soll damit musikstückbezogene Daten beschriften können. Damit das schneller von der Hand geht, soll bereits nach der Eingabe weniger Zeichen das Programm Vorschläge einblenden, die sich durch Anklicken übernehmen lassen.
Da ich nun nicht das gesamte Weltrepertoire als Resource jeder Programmdatei mitgeben kann (und das Repertoire stetig wächst), habe ich eine Online-Datenbank (MySQL) eingerichtet, auf die mein Programm via REST-Api zugreift und sich die Vorschläge von dort holt. Das gibt mir die Möglichkeit, die Datenbank kontinuierlich weiter zu füllen und die Benutzer selbst sollen diese Datenbank auch pflegen können: Getätigte Eingaben der Maske werden in diese Datenbank übernommen und dann ggf. anderen Nutzern als Vorschlag angezeigt.
Selbstverständlich gibt es ein Häkchen direkt über der Maske, mit der sich die Funktion deaktivieren läßt. Der Benutzer wird auch darauf hingewiesen, daß er bei aktivierter Onlinefunktion keine privaten Daten eingeben sollte.
Über eine Webseite haben die Benutzer die Möglichkeit, den Datenbestand zu pflegen und fehlerhafte Daten zu korrigieren. Also ein bißchen wie Wikipedia: basiert auf dem Vertrauen, daß die Benutzer nichts Dummes damit anstellen bzw. dass die Mehrheit der Benutzer vernünftig ist und Querschläger selbst ausmerzt.
Nun muß man sich den Fragen stellen, wie man damit umgeht, wenn
-als Eingabedaten belästigende, verleumdende, rassistische Vokabeln eingegeben (und damit anderen Benutzern sichtbar gemacht) werden
-die Datenbank mit sinnlosen Daten zugespamt wird
-massenhafte Anfragen an die Datenbank gerichtet werden und der Server dadurch in die Knie gezwungen wird
etc.
Es ist ein leichtes für mich, den Onlinedienst sofort zu deaktivieren, die Programminstanzen können dann eben keine Vorschläge mehr anbieten. Besser wäre, dem einzelnen Übeltäter Einhalt zu gebieten oder solche Dinge zumindest zu erschweren.
Über Filter könnten Daten aussortiert werden, pro Client könnte die Zahl der Zugriffe pro Zeiteinheit begrenzt werden. Ich habe auch überlegt, daß jede Programminstanz sich eine ID holen muß, die dann bei jedem Datenbankzugriff mitgeschickt werden muß. Zugriffe einer bestimmten ID könnten dann geblockt werden. Freilich ist diese Vorgehensweise nicht 100% sicher und kann geknackt werden. Benutzer-Accounts kommen nicht in Frage, dafür sind Benutzer zu bequem.
Mich interessieren hierzu eure Gedanken und Vorschläge, auch ganz allgemeiner Art.
Danke!
meine Frage dreht sich nicht um SQL im engeren Sinne, sondern es geht eher allgemein um Client<->Webdatenbank.
In meinem Programm (Java), welches lokal auf dem Rechner des Anwenders läuft, gibt es eine Eingabemaske mit drei Feldern (Komponist und zwei für den Namen eines Musikstückes). Der Anwender soll damit musikstückbezogene Daten beschriften können. Damit das schneller von der Hand geht, soll bereits nach der Eingabe weniger Zeichen das Programm Vorschläge einblenden, die sich durch Anklicken übernehmen lassen.
Da ich nun nicht das gesamte Weltrepertoire als Resource jeder Programmdatei mitgeben kann (und das Repertoire stetig wächst), habe ich eine Online-Datenbank (MySQL) eingerichtet, auf die mein Programm via REST-Api zugreift und sich die Vorschläge von dort holt. Das gibt mir die Möglichkeit, die Datenbank kontinuierlich weiter zu füllen und die Benutzer selbst sollen diese Datenbank auch pflegen können: Getätigte Eingaben der Maske werden in diese Datenbank übernommen und dann ggf. anderen Nutzern als Vorschlag angezeigt.
Selbstverständlich gibt es ein Häkchen direkt über der Maske, mit der sich die Funktion deaktivieren läßt. Der Benutzer wird auch darauf hingewiesen, daß er bei aktivierter Onlinefunktion keine privaten Daten eingeben sollte.
Über eine Webseite haben die Benutzer die Möglichkeit, den Datenbestand zu pflegen und fehlerhafte Daten zu korrigieren. Also ein bißchen wie Wikipedia: basiert auf dem Vertrauen, daß die Benutzer nichts Dummes damit anstellen bzw. dass die Mehrheit der Benutzer vernünftig ist und Querschläger selbst ausmerzt.
Nun muß man sich den Fragen stellen, wie man damit umgeht, wenn
-als Eingabedaten belästigende, verleumdende, rassistische Vokabeln eingegeben (und damit anderen Benutzern sichtbar gemacht) werden
-die Datenbank mit sinnlosen Daten zugespamt wird
-massenhafte Anfragen an die Datenbank gerichtet werden und der Server dadurch in die Knie gezwungen wird
etc.
Es ist ein leichtes für mich, den Onlinedienst sofort zu deaktivieren, die Programminstanzen können dann eben keine Vorschläge mehr anbieten. Besser wäre, dem einzelnen Übeltäter Einhalt zu gebieten oder solche Dinge zumindest zu erschweren.
Über Filter könnten Daten aussortiert werden, pro Client könnte die Zahl der Zugriffe pro Zeiteinheit begrenzt werden. Ich habe auch überlegt, daß jede Programminstanz sich eine ID holen muß, die dann bei jedem Datenbankzugriff mitgeschickt werden muß. Zugriffe einer bestimmten ID könnten dann geblockt werden. Freilich ist diese Vorgehensweise nicht 100% sicher und kann geknackt werden. Benutzer-Accounts kommen nicht in Frage, dafür sind Benutzer zu bequem.
Mich interessieren hierzu eure Gedanken und Vorschläge, auch ganz allgemeiner Art.
Danke!