Anti-Spam

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

  • Anti-Spam

    Hallo,

    Ich habe ein kleines Blog auf meine Homepage. Ich bekomme jeden Tag zwischen 30 und 40 Spam Einträge. Um das zu vermeiden, habe ich so gemacht, dass ein Bild mit Randomzahlen erzeugt wird, und diese eingegeben werden müssen um ein Eintrag machen zu können.

    Ich habe Gestern die neue Seiten mit diesen System hochgeladen, aber für meine Überaschung habe ich Heute trotzdem die Spam Einträge bekommen.....

    Ich habe nun keine Ahnung, wie sie das schaffen... Hab jemand vielleicht eine Idee??

    Grüße

    Jordi

  • #2
    Funktioniert denn das ganze auch? Hast du mal mit Absicht falsche Zahlen eingegeben?
    Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
    var_dump(), print_r(), debug_backtrace und echo.
    Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
    Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
    Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

    Kommentar


    • #3
      Hi Shurakai,

      ja, natuerlich habe ich das probiert und das hat funktionert, deswegen wundert mich das sie das noch machen....

      Du kannst es selber probieren unter www.hispanokultur.de/diarioDE.php

      Gruesse
      Jordi

      Kommentar


      • #4
        Es leigt daran das die Robots das Hidden feld auslesen

        Kommentar


        • #5
          Danke Simon. Wie kann man das dann vermeiden??

          Kommentar


          • #6
            http://www.google.de/search?hl=de&q=captcha&meta=

            Kommentar


            • #7
              also ich machs so.. jede ip wird mit nem code in der db gespeichert... der coder von der ip wird dann ausgelesen und als code angezeigt... wenn man neu ladet wird der code in der db wieder erneuert... so kann niemand sessions und auch niemand hidden felds auslesen..

              achja.... hmm wo finde ich ein link wo das ist? wenn ich auf deiner seite bin finde ich nichts was ein captcha drinne hat
              Mfg Tobias Dosch

              Kommentar


              • #8
                Also Sessions von außen kannst du so einfach nicht auslesen.. Das ist da in etwa so sicher wie in der Datenbank
                Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
                var_dump(), print_r(), debug_backtrace und echo.
                Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
                Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
                Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

                Kommentar


                • #9
                  datenbank --> noch sicherer
                  Mfg Tobias Dosch

                  Kommentar


                  • #10
                    Wieso?
                    Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
                    var_dump(), print_r(), debug_backtrace und echo.
                    Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
                    Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
                    Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

                    Kommentar


                    • #11
                      weil es bestimmt einen weg gibt sessions auszulesen..

                      EDIT: cookies kann man doch auch auslesen oder?
                      Mfg Tobias Dosch

                      Kommentar


                      • #12
                        Original geschrieben von Simon94
                        Es leigt daran das die Robots das Hidden feld auslesen
                        <input type='hidden' name='Codezahl' value='123456l' />

                        es ist schon sehr naiv, die Codezahl im Klartext zu speichern. Man könnte sie verschlüsselt, oder zB als MD5(Codezahl + Schlüsselwert) liefern. Problem ist dann das 'replay', dh Roboter kennt einmal eine Codezahl und braucht dann immer dieselbe. Ein Zeitfenster oder dergleichen hilft nicht viel.

                        Sinnvoll ist es, die Codezahl in der Session zu speichern. Dann kann Roboter die Session wiederholen, und die Sessionid 'klauen', aber er weiss die jedesmal neu generierte Codezahl nicht. Wichtig ist, die akzeptierte richtige Codezahl in der Session zu löschen, damit sie nicht wiederholt werden kann.

                        Eine Session ist bezüglich Programmier- und Denkaufwand nicht teuer.

                        These: Sessionklau hilft einem Roboter nicht, wenn jede akzeptierte Codezahl gelöscht wird. bzw. bei jedem Formularaufbau die Codezahl generiert wird und bei jeder Post-Verarbeitung die Codezahl gelöscht wird.
                        Zugunsten des humanen Benutzers: Die Codezahl nur bei der richtigen Eingabe in der Session löschen.

                        Bemerkung: die captchas sind human etwas schwer lesbar.
                        Zuletzt geändert von nix_wie_weg; 06.08.2006, 23:04.

                        Kommentar


                        • #13
                          Original geschrieben von Witzigerkiller
                          weil es bestimmt einen weg gibt sessions auszulesen..

                          EDIT: cookies kann man doch auch auslesen oder?
                          Das eine hat mit dem anderen nix zu tun. Session und Cookie sind in etwa wie Eier und Bananen.

                          Die einen liegen sicher auf dem Server in einem Verzeichnis (wie die Datenbank auch) und ist nix anderes als ein serialisiertes Array das in einer Datei gespeichert wurde und eine bestimmte ID bekommen hat...

                          Das Cookie hingegen liegt beim Client auf dem Rechner und kann von ihm natürlich beliebig eingelesen werden (genauso wie von der Website die es gesetzt hat) und auch manipuliert werden. An die Sessiondaten kommt er allerdings nicht ran.
                          Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
                          var_dump(), print_r(), debug_backtrace und echo.
                          Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
                          Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
                          Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

                          Kommentar


                          • #14
                            achso ok, das macht einen mal wieder schlauer...
                            Mfg Tobias Dosch

                            Kommentar


                            • #15
                              mmm, ja, man lernt hier immer viel ;-)

                              <input type='hidden' name='Codezahl' value='123456l' />

                              Die Zahl da gespeichert ist alerdings nicht die richtige Zahl. Also, ich füge immer ein zusätlicher Zeichen am Ende um die Roboter zu betrügen. Dann bei check der Codezahl ignoriere ich einfach die letzte Zeichen. So kann ein Human 123456 eingeben und Nachrichten speichern. Ein Roboter wird aber 123456l eingeben und nicht speichern können. Das habe ich zumindest gedacht weil es leider nich funktionert hat :-(

                              Also ich werde versuchen die Zahl in der phpSession zu speichern, das sollte wie ihr sagt gehen

                              Kommentar

                              Lädt...
                              X