Maar dit werk niet naar behoren, wat zou ik kunnen doen?
Ik wil absoluut geen captcha gebruiken, zelf word ik er gek van dat ik bij heel veel website 2 of 3 puzzels moet oplossen om een mail te versturen en klik vaak de website weg als dit moet.
?Onbekende gebruiker
02-02-2022 15:07
gewijzigd op 02-02-2022 15:09
Helaas is de enige correcte manier om een mailadres te valideren om een mail te versturen met een activatie-link.
Het is nog makkelijker om dit in een array te plaatsen, en met in_array() te controleren of de waarde in de array staat. Dan heb je ook geen stripos() nodig.
Bovendien is het vechten tegen de bierkaai, want een mailadres is zo aangemaakt en/of ingevuld. Om spammers te weren zal je ongetwijfeld een heel leger moeten inzetten om de lijst aan te vullen.
Het werkt niet met vinkjes, en ook niet met die puzzels. Serverside wordt er door Google gecontroleerd of iemand betrouwbaar is, en krijg je een score terug. Aan de hand van die score zeg je dan of een bericht toe wordt gelaten of niet. Ik gebruik dit ook, en het aantal geautomatiseerde spamberichten is gedaald tot 0.
Maar helemaal waterdicht zullen die laatste twee niet zijn.
Ik controleer het inderdaad ook nog op andere punten. Dit is de hele code:
if ( !isset($_POST['email']) or !preg_match( '~^[a-z0-9][a-z0-9_.\-]*@([a-z0-9]+\.)*[a-z0-9][a-z0-9\-]+\.([a-z]{2,6})$~i', $_POST['email']) or trim($_POST['email']) == '' or $_POST['email'] == '[email protected]')
{$aErrors['email'] = 'Uw emailadres ontbreekt of u heeft een niet gelding emailadres opgegeven.';$veldkleuremail = 'tekstveldred';
}elseif ((stripos($_POST['email'],'[email protected][email protected]') !== false))
{$aErrors['email'] = 'Uw bericht wordt gezien als spam, daarom kunt u geen gebruik maken van dit formulier.';$veldkleuremail = 'tekstveldred';
}else{$veldkleuremail = 'tekstveldnorm';}
[size=xsmall]Toevoeging op 02/02/2022 15:17:09:[/size]
- Ariën - op 02/02/2022 15:10:23
Het is nog makkelijker om dit in een array te plaatsen, en met in_array() te controleren of de waarde in de array staat. Dan heb je ook geen stripos() nodig.
Bovendien is het vechten tegen de bierkaai, want een mailadres is zo aangemaakt en/of ingevuld. Om spammers te weren zal je ongetwijfeld een heel leger moeten inzetten om de lijst aan te vullen.
Het werkt niet met vinkjes, en ook niet met die puzzels. Serverside wordt er door Google gecontroleerd of iemand betrouwbaar is, en krijg je een score terug. Aan de hand van die score zeg je dan of een bericht toe wordt gelaten of niet. Ik gebruik dit ook, en het aantal geautomatiseerde spamberichten is gedaald tot 0.
Dat is ook misschien we een goed idee. Controleerd hij dan op ipadres?
En wat als iemand met het mailadres [email protected] zich aanmeldt?
Nu ga je zelf een eigen reguliere expressie voor mailadressen maken terwijl je dit prima door PHP kan laten doen:
Maar goed, de lijst met spammers bijhouden is echt een dagtaak. Een Recaptcha is beter, en tegenwoordig is ReCaptcha ook niet 'opdringerig' en 'vervelend'.
ReCaptcha controleert op meerdere manieren. Ik weet niet op wat voor manieren, maar hun kunnen het via een scala aan technieken prima aanvoelen of een aanvraag legitiem is, of van een scammer.
Let wel, gebruik van Google is niet conform AVG/GDPR... En ik hekel captcha's, dan ben ik weg bij een site.
Veel sites gebruiken dit, waaronder de groten. En als je het niet vertrouwt dan gebruik je toch 'incognitomodus'. Daarnaast is ReCaptcha V3 niet hinderlijk voor de gebruiker.
Bestaande invul (Re)Captcha's zijn allang gekraakt. Het schijnt dat er farms bestaan die zelfs manueel dit over kunnen typen voor spamruns. Een simpele oplossing is een extra invulveld die verplicht ingevuld moet worden, met een simpele vraag: Waar gaat deze site over?
moet je dan wel weer zo een vervelende cookiewall gebruiken of hoeft dat niet?
[size=xsmall]Toevoeging op 02/02/2022 15:26:29:[/size]
- Ariën - op 02/02/2022 15:19:31
En wat als iemand met het mailadres [email protected] zich aanmeldt?
Nu ga je zelf een eigen reguliere expressie voor mailadressen maken terwijl je dit prima door PHP kan laten doen:
Ongewenste e-mailadressen toevoegen rechtstreeks in je code is natuurlijk een no-go. Een captcha zoals Ariën noemt, is een goede optie.
Ik weet niet om wat voor formulier het gaat, maar wellicht is het zinvol dat de ontvanger zijn mailadres moet verifiëren door op een link met code te klikken (die hij/zij per mail ontvangt).
Stel dat het gaat om een formulier waarmee je een reactie kan plaatsen, en je valideert niet of het mailadres inderdaad van die persoon is, dan kan iemand gewoon [email protected] als mailadres invoeren en dat wordt dan gewoon geaccepteerd.