Ankündigung

Einklappen
Keine Ankündigung bisher.

Captcha String-Kette Überprüfen

Einklappen

Neue Werbung 2019

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

  • Captcha String-Kette Überprüfen

    Moin moin,
    ich bin gerade dabei mir ein Register Formular zu bauen. Ich habe mit hilfe von PHP eine zufällige Captcha String-Kette erzeugt und diese wird mir auch im Register-Formular angezeigt. Nun will ich diese String-Kette mithilfe einer TextBox überprüfen. Sprich, nur wenn der Code übereinstimmt, soll das Formular losgeschickt werden. Jemand eine idee?


  • #2
    Beim Erstellen des Captcha-Codes diesen in einer Session-Variable speichern:
    PHP-Code:
    $_SESSION['captcha.register'] = $captchaCode
    Nach dem Absenden des Formulars prüfen ob eingegebener Code übereinstimmt:
    PHP-Code:
    if (isset($_POST['code']) and isset($_SESSION['captcha.register']) and $_SESSION['captcha.register'] === $_POST['code']) {
        echo 
    'Alles ok!';
    } else {
        echo 
    'Fehler: Captcha-Code inkorrekt!';

    Kommentar


    • #3
      zufällige Captcha String-Kette

      Kommentar


      • #4
        Etwas offtopic, aber les dir zum Thema Captchas das hier mal durch:

        Captchas sind Blödsinn - Alternativen gegen Spam http://1ngo.de/web/captcha-spam.html

        Spam bekämpfen – aber richtig! http://www.shiftedwork.de/blog/2010/...-aber-richtig/

        Und hier, vom ForumUser jspit hier: http://jspit.de/?page=antispam

        LG
        Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
        PHP.de Wissenssammlung | Kein Support per PN

        Kommentar


        • #5
          Zitat von monolith Beitrag anzeigen
          Beim Erstellen des Captcha-Codes diesen in einer Session-Variable speichern:
          PHP-Code:
          $_SESSION['captcha.register'] = $captchaCode
          Nach dem Absenden des Formulars prüfen ob eingegebener Code übereinstimmt:
          PHP-Code:
          if (isset($_POST['code']) and isset($_SESSION['captcha.register']) and $_SESSION['captcha.register'] === $_POST['code']) {
              echo 
          'Alles ok!';
          } else {
              echo 
          'Fehler: Captcha-Code inkorrekt!';


          Danke dafür, habe es etwas anders gelöst
          <closed>

          Kommentar


          • #6
            Zitat von hausl Beitrag anzeigen
            Etwas offtopic, aber les dir zum Thema Captchas das hier mal durch:

            Captchas sind Blödsinn - Alternativen gegen Spam http://1ngo.de/web/captcha-spam.html

            Spam bekämpfen – aber richtig! http://www.shiftedwork.de/blog/2010/...-aber-richtig/
            Ich persönlich finde auch, man sollte erst mal damit arbeiten und schauen, ob das reicht und erst, wenn man bei einer Website auf ein Bot-Problem trifft, weitere Maßnahmen ergreifen.

            Allerdings ist auch klar, dass die Maßnahmen von oben alle nur greifen, solange kein Mensch den Bot auf die Website anpasst, was nur wenige Minuten dauert, also keine Herausforderung darstellt.

            Kommentar


            • #7
              Zitat von monolith Beitrag anzeigen
              Ich persönlich finde auch, man sollte erst mal damit arbeiten und schauen, ob das reicht und erst, wenn man bei einer Website auf ein Bot-Problem trifft, weitere Maßnahmen ergreifen.

              Allerdings ist auch klar, dass die Maßnahmen von oben alle nur greifen, solange kein Mensch den Bot auf die Website anpasst, was nur wenige Minuten dauert, also keine Herausforderung darstellt.
              Warum direkt zweimal das Problem angehen, wenn man es bereits beim ersten Mal ausbessern kann? Du wartest doch auch nicht bis jemand deinen Login-Bereich umgehen kann, bevor du ihn sicher machst.

              Kommentar


              • #8
                Ganz einfach: Weil möglicherweise eine Maßnahme der zweiten Runde so aussähe, doch wieder ein Captcha oder sonstiges UI-Element einzubauen, das man eigentlich vermeiden möchte.

                Kommentar


                • #9
                  Zitat von monolith Beitrag anzeigen
                  Ganz einfach: Weil möglicherweise eine Maßnahme der zweiten Runde so aussähe, doch wieder ein Captcha oder sonstiges UI-Element einzubauen, das man eigentlich vermeiden möchte.
                  Den Sinn dahinter verstehe ich. Bei einer ordentlichen Anti-Spam-Maßnahme müsste man maximal die Testverfahren marginal verändern (bspw. Fragen erneuern), um den möglichen Spam wieder zu mindern. Warum sollte man immer wieder neue Anti-Spam-Maßnahmen einbauen? Das kostet Zeit und somit Geld.

                  Kommentar


                  • #10
                    Nochmal: Ich möchte zunächst auf sowas wie Captchas, Fragen etc verzichten, der UX zuliebe. Sollten andere Anti-Bot-Maßnahmen aber nicht reichen, müsste man es ja doch so machen.

                    Kommentar


                    • #11
                      Bzgl. Ausgangsfrage: Mann sollte das grundlegende Funktionsprinzip von Sachen schon verstanden haben, die man einbaut. Insofern ist das wieder einer dieser Threads, wo ich mir nur am Kopf kratzen kann
                      --

                      „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                      Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                      --

                      Kommentar

                      Lädt...
                      X