Announcement

Collapse
No announcement yet.

Fremdeinträge mittels Post vermeiden

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Fremdeinträge mittels Post vermeiden

    Hallo,

    ich benutze ein Gästebuch(flatPHPbook), in dem sich immer wieder Robots mit irgendwelchem Blödsinn eintragen.
    Gibt es eine Möglichkeit, dies zu vermeiden?

    Matthias

  • #2
    Hallo Matthias,

    eine Möglichkeit wäre mittels Referer zu arbeiten.

    Siehe hier: http://www.php-faq.de/q/q-http-referer-nutzen.html

    Ist allerdings nicht optimal.
    Siehe hier: http://www.php-faq.de/q/q-http-referer.html

    Sicherer wäre es mit Sessions.
    Siehe hier: http://www.php-faq.de/q/q-sessions-zweck.html

    Gruß Uw

    Comment


    • #3
      Hallo Zeras,

      die einfachste Möglichkeit ist, wie von Uwe vorgeschlagen, den Referer auszuwerten und den Eintrag nur zuzulassen, wenn dort deine Seite drinsteht. Da heutzutage viele Browser die Möglichkeit bieten den Referer zu unterdrücken, da damit auch viel Schindluder getrieben wird (Trackingcookies), verwehrst du u.U. einigen "gewünschten" Gästen einen Eintrag ins Gästebuch.

      Gute Erfahrung gegen einfache Robots habe ich über eine Sessionvariable gemacht. Dazu mußt du dein Gästebuchscript etwas anpassen. Das Prinzip ist folgendes:
      1. Beim Ausgeben der Forumlarseite für den Gästebucheintrag generierst du eine Zufallskennung (z.B.: mit md5(uniqid(rand(), true)) Diese Zufallskennung speicherst du in einer Sessionvariable ab. und gibst sie gleichzeitig für das Formular als hidden-Feld mit aus.
      2. Beim speichern des Eintrages überprüfst du jetzt, ob der Wert des hidden-Feldes mit dem in der Sessionvariable übereinstimmt.
      3. Fehlt der Wert aus dem hidden-Feld oder sind die Werte nicht gleich, dann wird der Eintrag nicht gespeichert. Sind die Werte gleich, dann kannst du relativ sicher sein, das der Eintrag über dein Formular gemacht wurde. Der Robot muß zumindest sehr viel mehr Aufwand betreiben, um zum Ziel zu kommen.

      Eine Andere sehr wirkungsvolle Methode ist: Nenn das Script zum Speichern nicht guestbook.php, gaestebuch.php o.ä., sondern z.B. tool4711.php oder irgendwie anders. Die guestbook.php ist dann nur zum Anzeigen der Einträge da. Das ist zwar etwas Aufwand, wenn man einige Links anpassen muß, aber bei mir war danach schlagartig Ruhe - Toi, toi, toi.

      Gruß Fal
      Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

      Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

      Comment


      • #4
        Hallo Uwe und Falk,

        vielen Dank für die Informationen.
        Ich werde das mal am Wochenende ausprobieren. Gestern abend waren schon wieder solche sch.. Einträge drin. Und dann sind es gleich einmal 10 Einträge.
        Mit Sessions habe ich noch nichts programmiert, sollte aber nach der obigen Beschreibung kein größeres Problem darstellen.

        Na dann auf gegen die Spammer.

        Matthia

        Comment


        • #5
          Hallo,

          da ich ein fertiges Script nutze, hatte ich garnicht gemerkt, dass dies schon Sessions benutzt. Dies fällt dann schon einmal aus. Die Info, verschiedene Dateien zum Anzeigen und Eintragen habe ich noch nicht versucht, da offensichtlich schwieriger zu gestalten ist. Ich nutze die Funktion "banned words". Dort habe ich schon verschiedene Versuche abblocken können. Jetzt habe ich in den Logfiles bemerkt, dass immer eine bestimmtes Ende einer Domain diese Sachen verursacht. In den Logiles steht dann keine IP, sondern sowas wie c-67-170-210-251.hsd1.ca.xxxxxxxx.xx. Die "x" sind offensichtlich immer gleich, nur weiß ich nicht, wie man die Variable herausbekommt. Es ist ja keine direkte IP-Adresse. Hat jemand eine Idee, wie man das in PHP abfrägt?

          mfG

          Matthia

          Comment

          Working...
          X