Captcha mit JS

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Captcha mit JS

    Also ich kenne mich mit Spambots nicht genau aus, aber würde es nicht reichen, wenn man den Inhalt des Formulars erst onload der Webseite über AJAX nachlädt? Oder alternativ könnte man auch die Felder und die ganze Form mit den DOM-Funktionen von JS dynamisch generieren.

    Wäre das ein sicheres Captcha oder können die Spambots auch so weit JS mit DOM und ggf. auch AJAX, so dass meine Idee keine Sicherheit bieten würde?
    Download ET-Chat v3.x.x

  • #2
    Idee 2 - Captcha mit PHP und Sessions

    Andere idee ist es die Felderbezeichnung in der Form selbst sollte nicht fest, sondern dynamisch sein. D.h. die felder heissen immer anders und zwar mit einer Zufallszahl. Welche Zahl für welches Feld steht, sollte man in die Sassionvariable ablegen. Hier ein BSP:

    Form.php
    PHP-Code:
    $_SESSION['username'] = rand(09999999999);

    echo 
    '<input type="text" name="'.$_SESSION['username'].'" />'
    Send.php
    PHP-Code:
    echo 'Benutzername: '.$_REQUEST[$_SESSION['username']]; 
    So sind die Felder immer anders benannt und es ist aus der Benennung nicht ersichtlich um welchen Parameter es in diesem Feld gehen soll.


    Ist diese Idee sinnvoll?

    Man könnte auch die Beiden Ideen kombinieren um die Sache für Spambots zu verkomplizieren.
    Download ET-Chat v3.x.x

    Kommentar


    • #3
      Mit der ersten Idee schließt du alle Non-JS-User von vornherein aus, bei der zweiten können auch Browser die Felder nicht mehr (wieder-)erkennen und kein Autofill machen.

      Kommentar


      • #4
        Zitat von E.T. Beitrag anzeigen
        würde es nicht reichen, wenn man den Inhalt des Formulars erst onload der Webseite über AJAX nachlädt? Oder alternativ könnte man auch die Felder und die ganze Form mit den DOM-Funktionen von JS dynamisch generieren.
        Abgesehen vom Einwand, dass das dann auch für echte Nutzer ohne JS nicht benutzbar ist - Spambots lesen nicht nur automatisiert Formulare aus, sondern manchmal wird auch menschliche Arbeitskraft eingesetzt, um Formulare zu analysieren. Und wenn sich jemand anschaut, wie den Formular per JS aufgebaut wird, kann man das auch einem Bot einpflanzen, der dann wiederum ganz automatisiert seine Anfragen sendet, ohne dass du das serverseitig unterscheiden könntest. (Zugegeben, für ein popeliges Gästebuch wird der Aufwand vermutlich nicht betrieben - aber auf interessanteren Seiten durchaus ein plausibles Szenario.)

        Andere idee ist es die Felderbezeichnung in der Form selbst sollte nicht fest, sondern dynamisch sein.
        Die Struktur des HTML-Dokumentes dadurch versauen? Das kommt in meinen Augen einer Kapitulation vor Spammern gleich.
        Dann doch lieber Lösungen wie Akismet.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          Zitat von onemorenerd Beitrag anzeigen
          Mit der ersten Idee schließt du alle Non-JS-User von vornherein aus, bei der zweiten können auch Browser die Felder nicht mehr (wieder-)erkennen und kein Autofill machen.
          Das alles stimmt, diese Nachteile sind mir schon klar und ich sehe diese auch ein.
          Jedoch surfen inzwischen so gut wie alle Internetbenutzer mit JS-fähigen Browsern und Autofill ist bei den mit einer Captcha zu schützenden Formularen ehe uninteressant. Dagegen sind sehr viele, vor allem ältere Internetbenutzer, von visuellen Captchas überfordert. Ich selbst habe oft sogar Probleme zu erkennen was genau da stehen soll... eher bin ich also bereit auf Autofill zu verzichten. Barrierefrei sind eigegentlich beide Varianten kaum.
          Download ET-Chat v3.x.x

          Kommentar


          • #6
            Zitat von wahsaga Beitrag anzeigen
            Die Struktur des HTML-Dokumentes dadurch versauen? Das kommt in meinen Augen einer Kapitulation vor Spammern gleich.
            Dann doch lieber Lösungen wie Akismet.
            Also man "versaut" nur die Namenattribute der Inputtags. Das ist zwar nicht schön aber am sonsten sehe ich da keine gravierenden Auswirkungen (nur Autofill geht nicht mehr), die mit einer Kapitulation vergleichbar wären.
            Download ET-Chat v3.x.x

            Kommentar


            • #7
              Zitat von E.T. Beitrag anzeigen
              Also man "versaut" nur die Namenattribute der Inputtags. Das ist zwar nicht schön aber am sonsten sehe ich da keine gravierenden Auswirkungen (nur Autofill geht nicht mehr), die mit einer Kapitulation vergleichbar wären.
              Aber wer behauptet dass der Spambot nicht einfach blind alle Input-Felder irgendwie ausfüllt und abschickt? Oder eine Nicht-Maschine die Felder ausfüllt? Dann hast du den Mist trotzdem in der Datenbank. Ich würde die Daten erst nach Absenden validieren, alles andere ist auf Dauer nichts.

              Kommentar

              Lädt...
              X