Tastatureingabe im Formular prüfen - Spamschutz
spargel
- javascript
Hallo
Leider häufen sich auch auf meiner Datenbank durch Spameinträge über das Formular in meinem Gästebuch.
Als erstes erstellte ich eine Kontrolle der Wörter beim Eintragen in die Datenbank was schon mal ziemlich viel abfängt. Auch die Felder werden überprüft und müssen ausgefüllt sein um leere Einträge zu verhindern.
Dies funktioniert zwar gegen manuelle Eingabgen, leider aber nicht gegen Eingaben die nicht über das Formular sondern direkt auf dem Script "Einträge speichern" abgelegt werden.
Ich möchte nun überprüfen ob vor dem Speichern manuell eine Eingabe mit der Tastatur gemacht wurde. Wenn ja, Eintrag speichern, nein - Löschen.
Ich dachte da an den Befehl "count_keyup".
Was denkt Ihr, könnte dies meinem Problem abhelfen und kann mir jemand einen Wink geben wie ich das Prüfen kann?
Vielen Dank im Voraus...
Was hältst du davon?
Wenn mir ein Beitrag wichtig ist, kommt es vor, dass ich ihn nicht im Formular erstelle, sondern in einem eigenen Editor. Ich kopiere dann den Text in das Formular hinein.
Ich denke, daran hast du nicht gedacht.
Erzähl uns lieber, welche Massnahmen du bis jetzt getroffen hast.
Ich bin sicher, man kann ein Gästebuch ohne Javascript hinreichend schützen.
mfg Beat
Da hast Du recht, daran habe ich nicht gedacht.
Wie bereits erwähnt prüfe ich die Eingaben mit diversen Wörtern. Auch kontrolliere ich ob die Felder (Name, eMail, Text, Wohnort) ausgefüllt sind...
Ein Bild mit einem Code möchte ich nicht unbedingt, da ich selber nicht Glücklich bin, wenn ich diese Code's abschreiben muss.
Danke und Gruss
Wie bereits erwähnt prüfe ich die Eingaben mit diversen Wörtern. Auch kontrolliere ich ob die Felder (Name, eMail, Text, Wohnort) ausgefüllt sind...
Ein Bild mit einem Code möchte ich nicht unbedingt, da ich selber nicht Glücklich bin, wenn ich diese Code's abschreiben muss.
Du solltest Felder einfügen, die nicht ausgefüllt werden dürfen (mit CSS auf display:none setzen). Diese Felder sollten aber atraktive Namen (email homepage) haben. Werden diese Felder ausgefüllt, hast du ein Spamindiz.
Die zweite Methode beruht darin, dass du eine mindestdauer zwischen Formularanforderung und dem Submit veranschlagst. Wenn jemand nicht 10 Sekunden warten kann, ist es höchstwahscheinlich Spam.
Inhaltsprüfung finde ich hingegen weniger stichhaltig.
mfg Beat
Die zweite Methode beruht darin, dass du eine mindestdauer zwischen Formularanforderung und dem Submit veranschlagst. Wenn jemand nicht 10 Sekunden warten kann, ist es höchstwahscheinlich Spam.
kannst Du mir einen Tipp geben wie ich das mit der mindestdauer lösen kann? Die Idee finde ich auch nicht schlecht...
kannst Du mir einen Tipp geben wie ich das mit der mindestdauer lösen kann? Die Idee finde ich auch nicht schlecht...
Du hast deine Serverseitige Sprache noch nicht genannt.
(ändere die hiessige Forenrubrik entsprechend)
Du setzt bei der Anforderung des Formulars ein Cookie mit dem timestamp.
Wenn das Formular dann verarbeitet wird, kannst du die Cookies auslesen, und prüfst, das seither mindestens 10 Sekunden vergangen sind.
Wenn kein Cookie gesendet wird, kannst du das eh als Spam ablehnen.
(Ist aber keine Garantie. Viele Spambots sprechen Keksisch)
mfg Beat
Grundlage für Zitat #1141.
Du setzt bei der Anforderung des Formulars ein Cookie mit dem timestamp.
Wenn das Formular dann verarbeitet wird, kannst du die Cookies auslesen, und prüfst, das seither mindestens 10 Sekunden vergangen sind.
Wenn kein Cookie gesendet wird, kannst du das eh als Spam ablehnen.
Das ist ja wohl grober Unfug. Ich habe Cookies grundsätzlich gesperrt. Denn Seiten mit Werbeeinblendungen setzen fünf und mehr Cookies, das nervt einfach. Es ist mein Rechner und ich bestimme, wer Daten ablegt.
Ganz anders, wenn eine Seite erklärt, warum sie Cookies benötigt. Dann gebe ich Cookies für diese Seite frei.
Ich selbst arbeite auch mit Cookies, damit die Einstellungen von der letzten Sitzung wieder verfügbar sind. Wer das nicht will, muss sich halt neu durchklicken, ist auch in Ordnung.
Kalle
Das ist ja wohl grober Unfug. Ich habe Cookies grundsätzlich gesperrt. Denn Seiten mit Werbeeinblendungen setzen fünf und mehr Cookies, das nervt einfach. Es ist mein Rechner und ich bestimme, wer Daten ablegt.
ok, das ist natürlich auch ein Argument.
Direktfrage: "Wie würdest Du das Probelm lösen, oder wie hast Du das Problem gelöst?"
Ich hab mal nochmals über die Tastatur-Eingabe nachgedacht und bin zum Entschluss gekommen, dass ich das so machen werden. Wenn ich in ein paar Worten schreibe, dass ich mind. einmal eine Taste gedrückt werden muss, dann sollte das ja auch kein Problem sein, oder?
Lieber spargel,
Ich hab mal nochmals über die Tastatur-Eingabe nachgedacht und bin zum Entschluss gekommen, dass ich das so machen werden.
vergiss bitte nicht, dass JavaScript umgangen werden kann! Du darfst Dich auf keinen Fall auf JavaScript verlassen! Und wie bereits erwähnt kann ein User in seinem Browser JavaScript aus guten Gründen deaktiviert haben. Was machst Du in einem solchen Falle?
Liebe Grüße aus Ellwangen,
Felix Riesterer.
Hallo Felix
vergiss bitte nicht, dass JavaScript umgangen werden kann! Du darfst Dich auf keinen Fall auf JavaScript verlassen! Und wie bereits erwähnt kann ein User in seinem Browser JavaScript aus guten Gründen deaktiviert haben. Was machst Du in einem solchen Falle?
Besten Dank für Dein Input. Wieviele Surfer im I-Net haben heute die Java-Funktion noch ausgeschaltet? Gibt es darüber eine Statistik?
Wie verhinderst Du Eintäge die über automatisch Gereriert werden?
Gruss Spargel
Lieber spargel,
Besten Dank für Dein Input.
gern geschehen. ;-)
Wieviele Surfer im I-Net haben heute die Java-Funktion noch ausgeschaltet?
1.) Java ist nicht dasselbe wie JavaScript.
2.) Was kümmern mich Statistiken, wenn es um die grundsätzliche Zugänglichkeit einer Website geht?
Wie verhinderst Du Eintäge die über automatisch Gereriert werden?
Einträge von Bots kommen aufgrund von einer Session, die ein Schlüssel-Schloss-Prinzip darstellt, nicht an. Bisher jedenfalls nicht. Näheres entnimmst Du am besten meinem Script.
Liebe Grüße aus Ellwangen,
Felix Riesterer.
Hallo Felix
Besten Dank für Dein Feedback...
1.) Java ist nicht dasselbe wie JavaScript.
Hab ich nicht mehr daran gedacht. Stimmt ja auch ;-)
2.) Was kümmern mich Statistiken, wenn es um die grundsätzliche Zugänglichkeit einer Website geht?
Da geb ich Dir auch Recht. Es gaht ja schliesslich um meine Seite. Trotzdem will ich Sie für meine Besucher möglichst einfach Gestalten und nicht "unnötige" Hindernisse einbauen.
Einträge von Bots kommen aufgrund von einer Session, die ein Schlüssel-Schloss-Prinzip darstellt, nicht an. Bisher jedenfalls nicht. Näheres entnimmst Du am besten meinem Script.
Wo finde ich Deinen Script? Hab ich da was Übersehen?
Auch ist mir noch eine weitere Idee gekommen:
Ich speichere den Eintrag in die Datenbank nicht auf dem Formular-File, sondern erst auf einem weiteren.
Es wäre doch eine Idee, dass ich prüfe ob die Daten für in die Datenbank vom Formular übergeben wurde oder nicht. Die Bots gehen ja nicht über das Formular, oder?
Grüsse Spargel
Lieber spargel,
Wo finde ich Deinen Script? Hab ich da was Übersehen?
[link.?t=174515&m=1146343#m1146343@title=anscheinend...]
Auch ist mir noch eine weitere Idee gekommen:
Ich speichere den Eintrag in die Datenbank nicht auf dem Formular-File, sondern erst auf einem weiteren.
Also die Zwangsvorschau, wie ich sie in meinem Script praktiziere?
Liebe Grüße aus Ellwangen,
Felix Riesterer.
Hi Felix
[link.?t=174515&m=1146343#m1146343@title=anscheinend...]
Dieser Link zeigt es mir nich an :-(
Stimmt bei mir was mit den Einstellungen in diesem Forum nicht?
Also die Zwangsvorschau, wie ich sie in meinem Script praktiziere?
Du meinst damit der Script von Deinem Gästebuch?
Gruss Michi
Lieber spargel,
[link.?t=174515&m=1146343#m1146343@title=anscheinend...]
sorry, da war ich zu schnell... es hätte so lauten müssen: anscheinend...
Ja, in meinem GB-Script kannst Du diesen Mechanismus nachvollziehen, bzw. "in Aktion erleben".
Liebe Grüße aus Ellwangen,
Felix Riesterer.
Hallo Felix
sorry, da war ich zu schnell... es hätte so lauten müssen: anscheinend...
kein Problem ;-)
Ja, in meinem GB-Script kannst Du diesen Mechanismus nachvollziehen, bzw. "in Aktion erleben".
Ich habe nun Dein GB mal heruntergeladen und bin dann ziemlich schnell auf folgendes Problem gestossen:
Du Arbeitest mit diesem Script nicht mit einer Datenbank so wie ich das Festgestellt habe. Ich habe sämtliche Einträge bereits in einer MySQL-Datenbank hinterlegt und möchte diese weiter nutzen.
Sonst sieht es sehr gut aus (den Eintrag in Dein GB werde ich auch noch machen :-))
Grüsse Spargel
Lieber spargel,
Du Arbeitest mit diesem Script nicht mit einer Datenbank so wie ich das Festgestellt habe.
ja, das stimmt. Das sehe ich als eine Stärke meines Scripts. Damit kann man so Späßchen wie SQL-Injection völlig vergessen... es kann auch kein DB-Passwort geknackt werden - da es ja keines gibt!
Ich habe sämtliche Einträge bereits in einer MySQL-Datenbank hinterlegt und möchte diese weiter nutzen.
Für ein GB eine Datenbank mit MySQL? Das ist in meinen Augen irgendwie so ähnlich wie mit Spatzen auf Kanonen zu schießen... oder eben umgekehrt.
Sonst sieht es sehr gut aus (den Eintrag in Dein GB werde ich auch noch machen :-))
Danke! Mittlerweile wird das Teil auch in anderen Foren empfohlen... bin richtig stolz auf mich!
Liebe Grüße aus Ellwangen,
Felix Riesterer.
Hallo Felix
ja, das stimmt. Das sehe ich als eine Stärke meines Scripts. Damit kann man so Späßchen wie SQL-Injection völlig vergessen... es kann auch kein DB-Passwort geknackt werden - da es ja keines gibt!
Das ist ein Argument. Ich kann aber diese Daten jederzeit wieder exportieren und in eine andere Datenbank importieren.
Für ein GB eine Datenbank mit MySQL? Das ist in meinen Augen irgendwie so ähnlich wie mit Spatzen auf Kanonen zu schießen... oder eben umgekehrt.
klar, für ein Gästebuch etwas zu viel. Jedoch möchte ich auch gerne einige Einträge dokumentieren und dann ist es relativ Einfach diese mit der vorhandenen ID wieder auszugeben.
Anderst ist ja meistens eine Datenbank auf dem Server vorhanden und die Tabelle die Du für das GB benötigst, kannst Du relativ einfach einfügen...
Grüsse Michi
Hallo spargel,
viele Mailformulare verschwinden nach dem Abschicken im Nirwana, anstatt den Text zu bestätigen.
Wenn ich eine Kopie meines eigenen Eintrags möchte, bereite ich das im Texteditor vor und setze den Text per [Strg][C] und [Strg][V] in das Formular ein. Feuert "count_keyup" in dem Falle auch?
Warum machst du nicht eine kleine Rechenaufgabe in der Form 3*3*2 und lässt das Ergebnis eintragen?
Kalle
Lieber spargel,
Was denkt Ihr, könnte dies meinem Problem abhelfen und kann mir jemand einen Wink geben wie ich das Prüfen kann?
JavaScript halte ich für die am wenigsten geeignete Methode, ein Gästebuch vor Spam zu schützen. Ich mache das anders.
Liebe Grüße aus Ellwangen,
Felix Riesterer.