captcha-code abfragen

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

  • captcha-code abfragen

    guten tag! ich möchte mein form mit captcha schützen.
    dafür hab ich hier ein tolles script gefunden und eingebaut.
    anzeige klappt auch...

    leider kann ich mit der abfrage nicht viel anfangen bzw. sie wirft fehler aus...
    PHP-Code:
     #SET code_true = "'#INSERT_SP_EXEC_cat /home/myweb/temp/captcha_{#INSERT_KD_ID}.DAT!" #ENDSET
     #IF ( "#INSERT_SP_VAR_code_true!" == "#INSERT_SP_VAR_captcha!" )
     
    Code ist richtig!
     
    #ELSE
     
    Code ist falsch!
     
    #ENDIF 
    das form übergebe ich mit
    PHP-Code:
    <FORM ACTION="<?php echo $PHP_SELF#INSERT_SP_CGI; ?>" METHOD="POST" name="kontaktformular">
    leider wird die erste zeile der prüfung schon als "falsch" ausgeworfen... was mach ich falsch??

    vielen dank für die hilfe.

  • #2
    mit # machst du in PHP einen Zeilenkommentar. Somit findet PHP den End-Tag in deinem Form nicht.
    it's not a bug,
    it's a feature!

    Kommentar


    • #3
      komische methode.

      ich machs immer so, übergebe im formular den erstellten captcha-code md5-codiert in ein hidden-field. vergleich dann das mit dem captcha code, und fertig ist der lack!

      Kommentar


      • #4
        ...übergebe im formular den erstellten captcha-code md5-codiert in ein hidden-field. vergleich dann das mit dem captcha code, und fertig ist der lack!
        Wenn du den Hash aber an den Client lieferst, lädst du ihn praktisch zum Brute Forcen ein. Wenn dann der Captcha Code nicht allzulange ist, dann ist der Brute Force schnell erledigt.
        Wieso speicherst du den Hash nicht ein einer Session Var ? So bleiben die Daten nur auf dem Server...

        Gruss

        tobi
        Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

        [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
        Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

        Kommentar


        • #5
          Original geschrieben von jahlives
          Wenn du den Hash aber an den Client lieferst, lädst du ihn praktisch zum Brute Forcen ein.
          Nicht nur das - hier wird dann auch das letzte Tage von Hopka angesprochene Problem relevant (sofern dagegen nicht noch explizit Gegenmassnahmen getroffen werden), dass man den selben Code bis in alle Ewigkeit benutzen kann ...
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Kommentar


          • #6
            mit # machst du in PHP einen Zeilenkommentar. Somit findet PHP den End-Tag in deinem Form nicht.
            stimmt, ich habe es auch schon so probiert:
            PHP-Code:
            SET code_true "'#INSERT_SP_EXEC_cat /home/myweb/temp/captcha_{#INSERT_KD_ID}.DAT!" #ENDSET
            IF ( "#INSERT_SP_VAR_code_true!" == "#INSERT_SP_VAR_captcha!" )
            {
            echo 
            "Code ist richtig!";
            }
            else
            {
            echo 
            "Code ist falsch!";

            trotzdem...

            was kann ich tun...???

            Kommentar


            • #7
              Hast du dir mal die Usereingabe und den gespeicherten Captchacode ausgeben lassen und verglichen ?

              Gruss

              tobi
              Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

              [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
              Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

              Kommentar


              • #8
                Original geschrieben von websdream
                stimmt, ich habe es auch schon so probiert:
                PHP-Code:
                SET code_true "'#INSERT_SP_EXEC_cat /home/myweb/temp/captcha_{
                #INSERT_KD_ID}.DAT!" 
                #ENDSET
                IF ( "#INSERT_SP_VAR_code_true!" == 
                "#INSERT_SP_VAR_captcha!" 
                Das ist doch wohl ganz offensichtlich kein PHP-Code, sondern irgendeine Template-Sprache.
                Die # zu entfernen, wird also wohl kaum was bringen, im Gegenteil.
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar


                • #9
                  @topicstarter
                  Ich verwende Wurzel's Code, den er hier im Forum mal gepostet hat. Funzt wunderbar und zuverlässig.

                  Gruss

                  tobi
                  Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                  [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                  Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                  Kommentar


                  • #10
                    @jahlives:

                    naja, ich benutz parallel auch ein zeit-captcha. also ich denk damit hab ich das brute-force problem erledigt. mein captchas sind in der regeln min. 5 zeichen!

                    Kommentar


                    • #11
                      Solange du den Hash Wert mitsendest ermöglichst du prinzipiell einen Brute Force Angriff ! Wenn du den Wert aber in einer Session Var speicherst bleibt er auf dem Server und ein Brute Force ist ned möglich.
                      Ausserdem bei 5 Zeichen würde ich nicht von sicher sprechen Wenn Gross-und Kleinschreibung, Zahlen/Sonderzeichen drin vorkommen dann können 5 Zeichen reichen.

                      Gruss

                      tobi
                      Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                      [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                      Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                      Kommentar


                      • #12
                        Eine Session Var ist aber auch nur ein Cookie. Also lässt sich das auch ohne Probleme auslesen und liegt damit nicht auf dem Server sondern auf dem Client!

                        Kommentar


                        • #13
                          @frankburian
                          Du hast den Witz der Sessions nicht verstanden.
                          SessionID != Session Var
                          und nur die SessionID wird übertragen. Wenn du bei dieser den Hash Wert bruteforced dann hast du den Captcha Code garantiert nicht. Weil der Captcha Code in einer Session Var gespeichert wird und die bleibt auf'm Server. Nix Cookie nix URL Parameter.

                          Gruss

                          tobi
                          Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                          [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                          Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                          Kommentar


                          • #14
                            Original geschrieben von jahlives
                            Du hast den Witz der Sessions nicht verstanden.
                            OffTopic:
                            Wieder mal ...
                            I don't believe in rebirth. Actually, I never did in my whole lives.

                            Kommentar

                            Lädt...
                            X