Ankündigung

Einklappen
Keine Ankündigung bisher.

Spambots und Kontaktformulare

Einklappen

Neue Werbung 2019

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

  • Spambots und Kontaktformulare

    Hallo,

    ich habe ein Kontaktformular geschrieben und mich dann gefragt was eigentlich mit Spam ist. Mit Google habe ich dazu ein paar Anregungen gefunden und dann noch eine Abfrage eingebaut.

    Ich erstelle eine Variable $besucher beim Aufruf des Formulars. Die wird einmal als $besucher.txt auf dem Webspace gespeichert und in ein hiddenField im Formular eingetragen. Das sieht so aus:

    PHP-Code:
    <?PHP
    $besucher 
    md5($_SERVER['REMOTE_ADDR'].time());
    $besucherliste "besucher/".$besucher.".txt";
    $besucherident fopen ($besucherliste"w");
    if (
    is_writable($besucherliste)) {
        
    fwrite ($besucherident"");
    }
    fclose($besucherident);
    ?>

    <input type="hidden" name="spamcheck" value="<?PHP echo $besucher?>">
    Nach dem Abschicken des Formulars wird geprüft, ob die Datei vorhanden ist

    PHP-Code:
    <?PHP
    $spamcheck 
    $_POST['spamcheck'];
    $besucherfile "besucher/".$spamcheck.".txt";
    if(!
    file_exists($besucherfile)) { 
        
    $return "false";
    }
    ?>
    und entsprechend verschickt oder nicht. Allerdings frage ich mich, ob das überhaupt was bringt.

    Die Datei wird durch den Seitenaufruf erstellt.
    Ruft ein Spambot die Seite auf?

    Die Variable $spamcheck wird mit einem verstecken Feld übergeben.
    Kann ein Spambot damit was anfangen?

    Ich habe irgendwie den Verdacht, daß ich hier nicht weit genug denke. Was meint ihr dazu?


    Gruß Sven


    (Ich habe übrigens noch andere Sachen wie cc: und bcc: u.ä. eingebaut. Es geht mir aber erstmal nur um obiges.)


  • #2
    Der Spamroboter ruft deine Seite auf, ermittelt den Inhalt des hidden-Fields und sendet als 2. Anfrage das ausgefüllte Formular.
    Kein Problem also.
    Dieser Link könnte interessant sein:
    http://www.heise.de/security/artikel/66815

    Kommentar


    • #3
      eventuell kannst du das in deinem script umsetzen.
      in diesem schnipsel wird ein zwischenschritt eingefügt
      der für den robot nicht erreichbar ist.


      <?php
      if (isset($_POST['email']))
      {
      $email = str_replace(':', '@', $_POST['email']);
      header("Location: mailto:$email");
      exit;
      }
      ?>

      <html>
      <head>
      </head>
      <body>
      <h3>Versenden von E-Mail</h3>
      <a href="<?=$_SERVER['PHP_SELF']?>?email=name:domain.de">
      Mail mir an krause_at_comzept.de!
      </a>
      </body>
      </html>

      Kommentar


      • #4
        Hallo,

        das Heise Script habe ich eingebaut.

        @philips Diese Möglichkeit die eigene eMailadresse zu schützen kannte ich
        noch nicht. Nur, wenn ein Spambot ein Formular abschicken kann, warum
        sollte er einem Link nicht folgen können.
        Aber davon mal abgesehen will ich ja nicht mein eMailprogramm öffnen,
        sondern ein Kontaktformular gegen Spambots absichern.


        Noch eine Frage. Mein Kontaktformular verschickt eine Mail an mich und
        eine als Bestätigungsmail an den Absender. Der hat natürlich dann meine
        eMailadresse. Dumm, wenn der Absender ein Spamer ist.
        Sollte ich die Bestätigung lieber lassen?
        Andererseits, wird sich ein Spamer wohl kaum die Mühe machen mein
        Kontaktformular zu benutzen, um an meine eMail zu kommen. Dann kann
        er sie auch gleich aus dem Impressum abschreiben.

        Eine andere Möglichkeit wäre beide Mails mit der eMailadresse des Besuchers
        zu verschicken. Weiß jemand wie das dann rechtlich aussieht? Könnte man
        da Probleme mit irgendwelchen Rechtverdrehern bekommen?

        Wer benutzt Bestätigungsmails und wie sind da die Erfahrungen?


        Gruß Sven

        Kommentar


        • #5
          Nur so kurz: Du könntest das ganze auch einfach unter der Adresse no-reply@deine-webseite.de verschicken. Und dann schreibst du vielleicht noch im Mail, dass man nicht an die Adresse antworten soll.

          Noch was anderes: Wenn deine Email-Adresse im Impressum steht, dann käme es eigentlich sowieso nicht mehr drauf an, wie du gesagt hast.
          Ich würde, wenn du dich wirklich absichern willst, die Mailadresse im Impressum so schreiben:

          • sven @ hotmail.com (Bitte ohne Abstände!)


          Ein normaler User, wäre dann sicher so schlau, die Abstände zu entfernen.

          Kommentar


          • #6
            Ja klar, ne no-reply Adresse. Ich Depp

            Kommentar


            • #7
              Noch eine Frage zum Heise Script. Das Prüfmuster ist da so:
              PHP-Code:
              <?php
              'feld' => '/^[[:print:]]{3,}$/',
              ?>
              Das heißt ja, daß mindestens 3 Zeichen eingegeben werden müssen.
              Wenn ein Feld auch leer sein kann, mache ich dann einfach
              PHP-Code:
              <?php
              'feld' => '/^[[:print:]]{0,}$/',
              ?>
              daraus? Oder deaktiviere ich dann etwa das Prüfmuster für dieses Feld?
              Wenn ich {3,} einfach weglasse kommt: Probleme mit Feld feld: wert. Weglassen geht also nicht.

              Kommentar

              Lädt...
              X