Contactformulier en captcha?
Wat is tegenwoordig de beste manier om die rottige bots tegen te gaan?
Iemand hier toevallig nog een contactformuliertje voor liggen?
Natuurlijk wel wat rondgekeken op google en heb ook een formulier die gebruikt maakt van letters dus dat je de letters moet overtypen maar hier blijken toch wat bots door te kunnen.
Thanks!
Ikzelf gebruik ReCaptcha v3 die eenvoudig in te bouwen is.
Heb jij hier misschien een werkend voorbeeld van? Waar ik uiteraard mijn Google code dan indruk :)
Wat heb jij aan code? Je hebt ook de server-side afhandeling ingebouwd?
Heb even moeten zoeken maar aangezien die toen niet werkte heb ik die dus verwijderd...
Zie ook dit: https://code.tutsplus.com/tutorials/example-of-how-to-add-google-recaptcha-v3-to-a-php-form--cms-33752
Gewijzigd op 14/11/2021 18:13:51 door - Ariën -
Zal het even gaan bestuderen, thanks! Mocht het gelukt zijn dan zal ik het ook zeker laten weten!
Top! Ben benieuwd!
2 verborgen velden waarvan 1 exact moet bevatten wat je zelf kiest en het andere leeg moet blijven.
1 niet verborgen veld met een wiskundige opdracht verwerkt in je session wat natuurlijk juist moet zijn
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
function maakCaptcha() {
$functie=rand(1,3);
switch ($functie) {
case 1:
$i1 = rand(1,10);
$i2 = rand(1,10);
$f1= ' tel daar eens ';
$f2=' bij.';
$_SESSION['captcha'] = $i1 + $i2;
break;
case 2:
$i1 = rand(1,10);
$i2 = rand(1,10);
if($i1<$i2) {
$i3=$i1;
$i1=$i2;
$i2=$i3;
}
$f1= ' trek daar nu eens ';
$f2 = ' vanaf.';
$_SESSION['captcha'] = $i1 - $i2;
break;
case 3:
$i1 = rand(1,10);
$i2 = rand(2,10);
$f1= ' vermenigvuldig dat eens met ';
$f2= '';
$_SESSION['captcha'] = $i1 * $i2;
break;
}
return 'Je hebt ' . $i1 . $f1 . $i2 . $f2;
}
$functie=rand(1,3);
switch ($functie) {
case 1:
$i1 = rand(1,10);
$i2 = rand(1,10);
$f1= ' tel daar eens ';
$f2=' bij.';
$_SESSION['captcha'] = $i1 + $i2;
break;
case 2:
$i1 = rand(1,10);
$i2 = rand(1,10);
if($i1<$i2) {
$i3=$i1;
$i1=$i2;
$i2=$i3;
}
$f1= ' trek daar nu eens ';
$f2 = ' vanaf.';
$_SESSION['captcha'] = $i1 - $i2;
break;
case 3:
$i1 = rand(1,10);
$i2 = rand(2,10);
$f1= ' vermenigvuldig dat eens met ';
$f2= '';
$_SESSION['captcha'] = $i1 * $i2;
break;
}
return 'Je hebt ' . $i1 . $f1 . $i2 . $f2;
}
Dit vul ik aan met e-mail- en ipadressen welke ik blokkeer.
Indien je geen andere landen wilt kan je die ook proberen te blokkeren.
Jan
Die kijkt via diverse algoritmes of iets betrouwbaar is, en controleert ook nog eens af de aanroepen via je eigen domein komen. Haast alle botjes doen dat niet, en doen een POST-request vanaf hun server naar jouw script, en lopen tegen een de controle aan.
Op ReCaptcha 2 kreeg ik elke dag bakken vol met rotzooi, maar met de overstap naar V3 is dit geminimaliseerd naar naar 99,9 % minder spam. Die overige 0,1 % spam is direct op mijn contactformulier ingevuld.
En is het nog gelukt?
Dicht na spamkick.