PHP rocks! wünscht allen Mitgliedern einen guten Rutsch ins neue Jahr 2017 !!!
Hinweis: Das Forum zieht um! Um keine Datenverluste zu haben, schalten wir zwecks Übernahme der Daten das Forum am Sonntag, den 24.04.2016 um ca. 21:00 Uhr offline und passen anschliessend die DNS-Einträge an.
www.php-rocks.de wird euch dann nach den Aktualisierungen der DNS-Server wieder wie gewohnt uneingeschränkt zur Verfügung stehen.
Danke für euer Verständnis!

Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Barrierefreiheit vs. Captcha
#11
Zitat:Das Problem ist, dass wir nicht ganz von der selben Sache sprechen. Du redest nur von JS, ich ausschliesslich von serverseitig ( bspw. PHP ). JS schön und gut, aber ich kontrolliere Usereingaben doch primär gerne serverseitig. Wenn JS zur Verfügung steht kann man prima damit schon Vor-Validieren, aber am Ende traue ich der clientseitigen Geschichte eher weniger...
Durchaus NEIN: Die ganze Validierung des Captchas erfolgt (bei mir z.B.) serverseitig.
Mein obiger Vorschlag soll lediglich per js die keyevents in ein Formularfeld schreiben, welches dann SERVERSEITIG mit dem Text aus den übrigen Formularfeldern verglichen werdebn kann.
Dies ist aber nur eine spontane Idee gewesen, auch hier kann der Bot die benötigten KeyEvents für den Text abschätzen...

Zitat:Du betrachtest immer nur einen spezifischen Punkt des ganzen und nicht das drum herum...
Wieder NEIN: Ich (bzw. meine Seiten) zieht möglichst alle Fälle in Betracht, bei dem von Dir/mir zitierten Beispiel gehe ich vom worst case aus: Der UserAgent "simluiert" einen "echten" Benutzer, d.h. er requested erst das Formular (wartet ggf. eine menschenmögliche Zeit) und sendet DANN den post entsprechend ab, und das schlimmstenfalls VOR jedem Request.

Zitat:Ja und? Der muß das Formular dann halt noch einmal ausfüllen
Wieder NEIN (imho): Ich habe bspw. Formulare für ganze (HTML-)Artikel, vor diesen könnte ein User wenige Minuten oder auch einen ganzen Tag oder länger sitzen, ich möchte ihm nicht zumuten das Formular nochmal auszufüllen oder beim Ausfüllen unter Zeitdruck zu geraten!

Zitat:Vielleicht meinen wir beide etwas anderes, wenn wir von Sessions reden? Solange ich die TAN nicht in einer Session speichere, wie soll die dann über eine Session zugeordnet werden können?!
Eben drum!
Alternativ statt einer session könnte ein gesalzener Hash/Checksumme erstellt werden.
Zitat:Vielleicht meinen wir beide etwas anderes
Bei mir funktioniert das (TAN oder wie auch immer) ungefähr so:
Beim Aufruf des Formulares wird ein TAN erstellt, ein entsprechender key wird in einem hidden feld gespeichert, beim response wird die TAN entsprechend validiert, sei es durch einen Abgleich mit der Session oder einem Prüfsummenverfahren (letzteres benötigt kein Speichern der Daten serverseitig).
Dies soll zunächst allein dazu dienen zu prüfen ob der UserAgent vor dem post das Formular auch requested/"gesehen" hat.


Zitat:Ja, und Bots sind auch nicht "dumm", klar lesen die Formulare aus, um die gängigsten Feldnamen zu berechnen. Genau deswegen füllen die ja das Textfeld aus und geben sich als Bot zu erkennen. Das ist der Sinn des Honeypot...
Auch wieder jein, bots sind i.d.R. dumm und es gibt eine Reihe welche einfach gängige Formularfelder (z.B. irgendwelcher CMS, oder "user", "pass") durchprobieren, und, gesetzt den Fall der Bot ist nicht dumm so wird er womöglich das Formular vorher untersucht haben und wissen welche Felder honeypots sind.
Antworten
#12
Zitat:Der UserAgent "simluiert" einen "echten" Benutzer, d.h. er requested erst das Formular (wartet ggf. eine menschenmögliche Zeit) und sendet DANN den post entsprechend ab, und das schlimmstenfalls VOR jedem Request.
Und wo ist das Problem daran?

Zitat:Ich habe bspw. Formulare für ganze (HTML-)Artikel, vor diesen könnte ein User wenige Minuten oder auch einen ganzen Tag oder länger sitzen, ich möchte ihm nicht zumuten das Formular nochmal auszufüllen oder beim Ausfüllen unter Zeitdruck zu geraten!
Das ist definitv ein anderer Anwendungsfall, von dem hast Du bisher nichts gesagt. Aber auch dort kann man sich behelfen. Zunächstmal hoffe ich, dass nicht jeder User einen Artikel schreiben/speichern kann? Einen Login hast Du dann ja sicher schon mal. Und was dort den Zeitfaktor angeht, kann man das dann User spezifisch zwischenspeichern. Problem gelöst...

Zitat:Beim Aufruf des Formulares wird ein TAN erstellt, ein entsprechender key wird in einem hidden feld gespeichert, beim response wird die TAN entsprechend validiert, sei es durch einen Abgleich mit der Session oder einem Prüfsummenverfahren (letzteres benötigt kein Speichern der Daten serverseitig).
Dies soll zunächst allein dazu dienen zu prüfen ob der UserAgent vor dem post das Formular auch requested/"gesehen" hat.
Ja, ähnlich ist es bei mir doch auch, nur dass ich die TAN/Prüfsumme o.ä. nicht im Formular hinterlege, auch keine Prüfsumme dazu. Da ist weder Deine noch meine Variante sicherer, nur halt ne andere...

Zitat:Auch wieder jein, bots sind i.d.R. dumm
Nein, sind sie nicht. Warum werden wohl bspw. Captchas immer komplizierter für den normalen Anwender?!
Aber ok, das soll ja keine Grundsatzdiskussion werden.

Zitat:gesetzt den Fall der Bot ist nicht dumm so wird er womöglich das Formular vorher untersucht haben und wissen welche Felder honeypots sind.
Ja, wenn man sie per Hidden-Field einsetzt ja. Aber per CSS ausblenden können die meisten "noch" nicht erkennen...

Ich muß leider zu dem Fazit kommen, dass Du gar keine Diskussion im Sinne Deines Threadtitels möchtest, sondern Bestätigung suchst, dass Dein System korrekt ist.
Da ich Dein System nicht im Detail kenne, kann ich Dir nur allgemein antworten und ich denke das habe ich ausführlich getan.

Viel Erfolg mit Deinen Captchas
Wink
Antworten
#13
Zitat:Und wo ist das Problem daran?
Der Bot kann so, gesetzt diesen Fall, das captcha umgehen, ohne eine Texterkennungssoftware zu verwenden.

Zitat:Ich muß leider zu dem Fazit kommen, dass Du gar keine Diskussion im Sinne Deines Threadtitels möchtest, sondern Bestätigung suchst, dass Dein System korrekt ist.
Da ich Dein System nicht im Detail kenne, kann ich Dir nur allgemein antworten und ich denke das habe ich ausführlich getan
Hey, ich habe 2 meiner Captchas im Eingangspost gezeigt.
Um die Usabillity zu verbessern hab ich nach Alternativen gefragt, bzw. nach weiteren Möglichkeiten der Captcha-Realisierung.
Deine aufgezeigten Alternativen haben mich halt zum Teil nicht ganz überzeugt, dazu siehe oben.
Trotzdem Danke  Smile

Es geht mir lediglich darum die Pros und Contras der einzelnen Alternativen zu diskutieren und ggf. neue, mir bisher unbekannte, Alternativen aufzutun...!?

Zitat:Ja, wenn man sie per Hidden-Field einsetzt ja. Aber per CSS ausblenden können die meisten "noch" nicht erkennen...
Es reicht ein vorheriger manueller Besuch des Formulares um die relevanten Felder zu erkennen und die honeypots auszufiltern. (Ja, das kommt in der Tat bei vor, z.B. bei mind. einem mir bekannten Bot über Versicherungsspam)
Meine Frage ist u.A. deshalb entstanden, in anderen Formularen ganz ohne Captcha habe ich teilweise so gut wie überhaupt keinen Spam.
Ich habe nun das Captcha ausgetauscht (das zweite durch das erste) und einige asynchrone requests für die Usabillity eingeführt (s.o.), das Ergebniss muß ich abwarten sieht aber bisher gut aus.
Mein Captcha ist wenn auch "korrekt", so sicher nicht perfekt und ich bin gespannt weitere Möglichkeiten zu hören...
Antworten
#14
Zitat:Deine aufgezeigten Alternativen haben mich halt zum Teil nicht ganz überzeugt, dazu siehe oben.
Überzeugen möchte ich Dich gar nicht, wollte Dir nur die Möglichkeiten aufzeigen.
Die sind übrigens gängig und keine Erfindung von mir, hier wird auch über sowas diskutiert: https://www.php.de/forum/webentwicklung/php-einsteiger/1483199-captcha-selbst-programmieren?p=1483877#post1483877

Der erster Punkt in dem Beitrag klingt übrigens auch interessant, werde ich evtl. auch nochmal einbauen, mal schauen.

Gruß Arne
Antworten


Gehe zu: