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
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><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><input type="text" name="email" value=""></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>
<?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>