Erklärung wie das Spam vermeiden durch hidden Feld geht

Erklärung Was sieht de Mensch und was sieht ein Bot bei einem hidden Feld im E-Mail Formular
Kommentar abgeben zu diesen Beitrag/Code ?
Dann hier klicken

Der hier verwendete Code

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script> <style> #formbox,h2{ width:60vw; display:flex; flex-direction:column; text-align:center; justify-content:center; border:1px solid black; margin:20px auto; } #formbox *{ width:80%; text-align:left; padding:5px 0 0 10px; margin-left:10%; } code{ color:red; } </style> <h1>Erklärung wie das spam vermeiden durch hidden feld geht</h1> <div id="level1"> <p>Ein normales formular ohne capacha und hidden feld,so wie ein Mensch es sehen tut wen er eine Seite betretten tut</p> <h2>Kontakt</h2> <div id="formbox"> <label>Name</label> <input type="text" id="name" name="name" value="basti1012"> <label>Email</label> <input type="text" id="email1" name="email" value="basti1012@soforthilfe-forum.de"> <label>Betreff</label> <input type="text" id="betreff" name="betreff" value="Test eintrag"> <label>Nachricht</label> <textarea id="nachricht" name="bettref">irgendein text zum testen</textarea> <input type="button" id="absenden" value="absenden"> </div> <p> Klicken wir mal auf senden und sehen was passiert</p> <div id="out1"></div> <h4>Der Spam Bot sieht das</h4> <code id="out2"></code> <p> Die Bots sind so Programmiert das die nach input Feldern suchen die den namen ( name,email,betreff,nachricht,versenden,absenden,tel usw...) haben<br> In diesen Formular finde er <li>name</li> <li>email</li> <li>betreff</li> <li>Nachricht</li> <p>Für den Bot ist es wichtig das email Feld zu finden <br>Wenn er das hat füllt er die Felder aus und sendet sie ab</p> <h3>Somit hast du jetzt Spam erhalten</h3> </div> <div id="level2"> <h2>Jetzt die hidden Lösung</h2> <p>Da der Bot kein Mensch ist und nur Felder ausfüllen tut die er kennt,geben wir das Emailfeld einen anderen Namen <br> <code>&lt;input type="text" name="bots_stinken_nach_secheisse" value=""></code> <p>und ein hidden Feld mit den namen Email ( danach suchen die Bots ja)</p> <code>&lt;input type="text" name="email" value=""&gt;</code> <button id="neuername">Bitte klicken um felder einzubauen </button> <p>Ein Mensch sieht immer noch das Formular unverändert, aber der Bot sieht das</p> <code id="out3"></code> <p>diesmal findet er immer noch die gleichen Felder,aber das das Feld mit den neuen Namern ( 'bots_stinken_nach_secheisse') kennt er nicht und füllt es auch nicht aus.Deine Besucher sehen ja das normale Foprmular,den ist es egal wie die Felder heissen.</p> <p>Dann haben wir aber noch das hidden Feld mit den namen "email". Der Bot weiß ja nicht das wir die Email mit den feld "bots_stinken_nach_secheisse" abfragen und füllt das hiddenfeld aus was ja email heisst.</p> <p>Dieses Feld können nur Bots auslesen und kein normaler User, und somit erkennen wir Bots</p> <button id="senden2">Klicke weiter</button> <p>Das wird jetzt gesendet</p> <div id="out4"></div> <p> Im Php Code Fragen wir einfach ab ob das hidden Feld ausgefüllt wurde</p> </div> <pre><code> &lt;?php $spam1=false; $spam2=false; //jetzt echtes email feld if(empty($_post['bots_stinken_nach_secheisse'])){ $psam1=true; } // falsches email hidden Feld if(!empty($_post['email'])){ $psam2=true; } $($spam1==true or $pam2==true){ die(" Ich bin ein Spam"): exit; }else{ echo Kein Spam , Email kann verschickt werden "; } ?> </code></pre> <script> $('#absenden').click(function(){ nam=$('#name').val(); ema=$('#email1').val(); bet=$('#betreff').val(); sms=$('#nachricht').val(); $('#out1').html('Das wird gesendet<br>Name = '+nam+'<br>Email = '+ema+'<br>Betreff = '+bet+'<br>Nachricht = '+sms); }) var $obj = $('#formbox'); $('#out2').text($obj[0].outerHTML); $('#neuername').click(function(){ $obj.append('<input type="hidden" id="email" name="email" value="ich bin ein bot und habe das feld ausgefüllt">'); $('#out3').text($obj[0].outerHTML); $('#email').attr('name','bots_stinken_nach_secheisse'); }); function aa(){ return $('#email').val(); } $('#senden2').click(function(){ nam=$('#name').val(); ema=$('#email1').val(); bet=$('#betreff').val(); sms=$('#nachricht').val(); spam=aa(); $('#out4').html('Das wird gesendet<br>Name = '+nam+'<br>Email = '+ema+'<br>Betreff = '+bet+'<br>Nachricht = '+sms+'<br> und das hidden Feld = '+spam) }) </script> </div> </div>