Een klant van mij ontvangt erg veel spam.

Ik lees nu op internet dat je ipv recaptcha misschien beter een minimale invultijd in kan stellen.
Mensen hebben vaak wat langer nodig om een emailformulier in te vullen dan een bot.

Weet iemand misschien hoe ik dit in kan stellen?

Dit is overigens mijn php formulier welke ik gebruik om het emailformulier te laten verzenden:


<?php
if (!isset($_POST['name']) || !isset($_POST['email']) || !isset($_POST['message'])) {
echo 'U heeft niet alle velden ingevuld!';
exit;
}

$naam = htmlspecialchars($_POST['name']);
$email = htmlspecialchars($_POST['email']);
$message = htmlspecialchars($_POST['message']);

$tijd = time();
$datum = strftime('%d/%m/%y %H:%M', $tijd);
$ip = getenv('REMOTE_ADDR');
$message = $naam.' met het e-mailadres '.$email.' en het IP '.$ip.' stuurde op '.$datum.' het volgende bericht:
____________________________________
'.$message.'
------------------------------------';

mail('[email protected]', 'Bericht van website', $message, 'From: '.$email);

header('location:http://www.dongenculinair.com/bedankt.html';);
?>
Ik heb zoiets ooit opgelost door door een hidden input mee te geven in de form-tag met de tijd (time-functie) en vervolgens de time-functie gebruiken als er op de knop is gedrukt die secondes met elkaar vergelijken, een bot doet alles binnen 10 seconden lijkt mij, een mens niet.

Edit:
Verder zou ik op de website geen afbeeldingen gebruiken van 1.2 MB, dit kost allemaal laadtijd en bandbreedte.
@Rob, je hebt het over ReCaptcha, maar ik zie in bovenstaande formuliervalidatie geen controle hierop? Weet je zeker dat je de ReCaptcha wel op de goede manier gebruikt?

Gebruik je uberhaupt Recaptcha of een ander middel om spam buiten te houden, zoals bijvoorbeeld een random token?
Thomas, Ik heb ook geen recaptcha ingesteld, vandaar dat je hier niets van ziet.

Maarten. Wat jij zegt lijkt me een goed idee.
Maar ik heb geen idee hoe ik dat zou moeten doen.

Moet ik iets toevoegen aan het bestaand php formulier?
Moet ik iets toevoegen in mijn html pagina waar het formulier staat?
Die 10 seconden gaan niet altijd werken lijkt mij. Stel dat iemand iets verkeerd invult, de validatie schopt je dan terug naar het formulier als het goed is? De gebruiker vult het foute gegeven in een mum van tijd aan. Het formulier wordt binnen het tijdsbestek opnieuw gepost. Wat gebeurt er dan?

En wat als iemand vaker dit formulier invult (mits van toepassing). Browsers hebben zoiets als "autocomplete" - dit stelt iemand in staat om redelijk rap een formulier in te vullen. Afhankelijk van het type formulier en het gebruik is 10 seconden mogelijk niet altijd toereikend dus deze oplossing zal niet in alle gevallen bruikbaar zijn.

Ik denk, persoonlijk, dat je al een heel eind komt met een controle die nagaat of het formulier wordt verstuurd vanaf jouw site middels het eerder genoemde random token. En als er wat geavanceerdere bots op je site actief zijn kun je nadenken over additionele maatregelen zoals een "honeypot", een verborgen element waar een normale gebruiker niets mee doet maar een bot grif iets in zal vullen.

Ook zou je de spam zelf kunnen analyseren en bij kunnen houden waar de form-submits vandaan komen. Mogelijk beperken deze zich tot één of enkele IP's. Deze zou je dan op een blacklist kunnen gooien.

Of je implementeert bestaande oplossingen, zoals een (Re)Captcha...
Met recaptcha ben ik al een hele dag bezig maar dit krijg ik niet werkend.
Ik heb op 2 websites de recaptcha staan:


Bij beide pagina's kan ik gewoon de mail verzenden zonder eerst de recaptcha op te hoeven lossen.

Op deze pagina van google : https://www.google.com/recaptcha/admin#site/337619931 staat:
"Step2 server side integration"

Ik heb geen flauw benul wat ik hier moet doen.

Ben bij elkaar al anderhalve dag bezig met recaptcha of eventuele andere oplossingen zonder enig resultaat. Wordt er langzaamaan gek van. Het zou niet zo heel moeilijk moeten zijn.

Via het mailformulier van heb ik sinds gisteren meer dan 50 mailtjes ontvangen zonder inhoud.
Allemaal andere afzenders, maar hoofdzakelijk gmail.

De namen vd afzenders is telkens iets in de geest van 5909e24365fb of
De namen beginnen allemaal met 5908 of 5909, wat hierachter staat varieert steeds
Begin bij het begin. Heb je een API-key aangemaakt voor dat domein? Dat stelt je in staat om de ReCaptcha op een specifieke website te gebruiken.
ja.

ik heb dit geplaatst net voor de "head tag"
<script src='https://www.google.com/recaptcha/api.js'></script>;

en ik heb dit geplaatst op de plaats waar de recaptcha moet komen te staan
<div class="g-recaptcha" data-sitekey="6Lfbqx8UAAAAAM2i4q9qAnJtrUCDe2tyjPR7SYM4"></div>
Dan ben je volgens mij al een heel eind? Het enige wat je dan nog moet doen is "het antwoord controleren" na submitten van een formulier in de validatiestap. Als je altijd door je ReCaptcha heenkomt zonder dat je de doorgaans verplichte stappen hebt doorlopen is er iets mis natuurlijk.
En hier is waar het fout gaat.

Op de pagina van google staat "Step2 server side integration"

Ik heb geen flauw benul wat ik hier moet doen.

Hier staat uitleg waar ik echt geen bal van snap:

https://developers.google.com/recaptcha/docs/verify
Teken eens een plaatje.

Iemand submit een formulier, in de informatie die je ontvangt zit tevens een POST veld genaamd g-recaptcha-response. Deze krijg je terug van de ReCaptcha functionaliteit. Vervolgens vraag je opnieuw aan ReCaptcha (met behulp van g-recaptcha-response) via bijvoorbeeld een cURL POST of de submit geldig was. Je krijgt dan wat JSON data terug, waaronder het veld "success". Hier kun je uit afleiden of de "ReCaptcha challenge" is volbracht.

Kort door de bocht schakel je dus een externe partij in (ReCaptcha) die beoordeelt of een formulier-submit door een mens is verricht of een robot. Vervolgens vraag je na afloop opnieuw aan deze partij "dit is de informatie die ik terug ontvangen hebt, ziet dit er kosher uit?" waarop de externe partij antwoordt met "ja" of "nee". Indien het antwoord "ja" is kun je met een aan zekerheid grenzende waarschijnlijkheid aannemen dat het een valide submit was waarna je het formulier verder kunt verwerken.

Reageren