2013-07-29 5 views
10

Ich kämpfe gegen zukünftige bot spamers für mein Newsletterformular Abonnement. Ich möchte die Form einfach halten, um das Verfahren schnell zu machen, also benutze ich kein Captcha, sondern eine versteckte Form, um Bots zu fangen.Wird ein verstecktes Feld effizient gegen Bot gesetzt?

Ist es effizient oder Bots wissen, wie man eine versteckte Form erkennt und umgehen wird?

Antwort

1

Ein effizienter Weg ist, dass die Formularübergabe von JavaScript abhängt. Bots unterstützen normalerweise kein JavaScript. Es ist keine perfekte Lösung, aber ..

10

Bots kämpfen mit dem Lesen von CSS oder JavaScript, zumindest für den Moment.

Einige Möglichkeiten, wie Sie Bot Spam-w/o Captcha verhindern können, sind:

  <form method="post" action="send.php"> 
       <ol> 
       <li> 
        <label for="name">Name</label> 
        <input type="text" name="name" value=""> 
       </li> 
       <li> 
        <label for="email">Email</label> 
        <input type="text" name="email"> 
       </li> 
       <!-- We hide this with CSS,that's why it has an ID. --> 
       <li id="user"> 
        <label for="username">Username</label> 
        <input type="text" name="username"> 
       </li> 
       <!-- //end --> 
       <li> 
        <input type="submit" name="submit" value="Send It!"> 
       </li> 
       </ol> 
      </form> 

Wie Sie das Feld Benutzername versteckt werden sehen können. Bots können das nicht erkennen. Was Sie danach tun müssen, ist nur zu validieren, dass dieses Feld in Ihrem Backend-Code leer ist.

  <?php 

      if(!isset($_POST['name'])) { die("No Direct Access"); } // Make sure the form has actually been submitted 

      $name = $_POST['name']; 
      $email = $_POST['email']; 
      $spam = $_POST['username']; // Bot trap 

      if($spam) { // If the hidden field is not empty, it's a bot 
       die("No spamming allowed bitch!"); 
      } else { 
       // Process the form like normal 
      } 

Das Verfahren oben kann mit dem Einsatz des Moduls BOTCHA Spam Prevention

auch einfacher durchgeführt werden Sie einen Blick auf diese Artikel haben einen besseren Überblick über das Thema zu bekommen.

Green-beast und web design aber Sie können Dutzende Artikel wie dieser auf dem Netz als auch

+0

Kann ich direkt verwenden, um den HTML-Tag „versteckt“ finden? – torr

+0

Ich würde dir nicht raten, da es auf IE nicht unterstützt wird. Ich kann den Grund des Downvote nicht verstehen ... – Thanos

+0

Was ich getan habe, ist Direktzugriff umleiten: 'sterben (' ');' – chiappa

Verwandte Themen