Ik weet niet of iemand dit weet, maar ik vraag me af hoe het spammen van een formulier werkt.

Ik neem aan dat de spammers niet handmatig websites gaan nalopen op zoek naar een contactformulier, en ik ga er dus vanuit dat dit geheel geautomatiseerd gebeurt en dat een spider/crawler/bot op zoek gaat naar contactformulieren op willekeurige websites en dat geprobeerd wordt om die formulieren in te vullen. Is mijn gedachte correct?

De tweede vraag die ik heb ... op het moment dat dit geautomatiseerd gebeurt, heeft zo'n bot dan ook beschikking over de sessie?

Weet iemand dit toevallig?
Je tweede vraag:

Als je kijkt naar de mogelijkheden die je hebt met CURL dan weet je dat je script ook een cookie kan bewaren en kan hergebruiken. Dit is voldoende om de server een sessie bij te laten houden. Beschikking tot de sessie zelf heeft een bot niet omdat een sessie zich aan de zijde van de server bevindt terwijl de bot de (geautomatiseerde) client is.
Thanks Frank.

Ik gebruik in mijn formulier een token die ik opsla in de sessie. Zo weet ik dus dat het formulier vanaf mijn website is verstuurd. Althans ... dat is het idee.

Jij zegt nu dat zo'n bot dus een cookie kan opslaan. Heeft zo'n token dan eigenlijk wel zin vraag ik me af. Als zo'n bot de sessie dus kan meekrijgen (ik bedoel niet het sessiebestand zelf maar de cookie) dan kan ie dus gewoon de token inlezen en bij de posting die token meesturen? Of zie ik dat verkeerd?
Ik denk eerder dat je beter kan kijken hoe snel het formulier word ingevuld.
Het viel mij op dat dit echt een luttele seconde duurde. Je kan snel tikken natuurlijk, maar en je naam, email, en bericht met een heel verhaal over bruidjes en viagra dat kan een mens niet zo snel. :) En dan ook nog diverse keren achter elkaar...
Ikzelf heb ontzettend veel last gehad van spam in een gastenboek.
Daarvoor heb ik recaptcha ingezet van Google, en daarmee was het probleem snel uit de wereld.
Overigens vond ik het wel apart dat het gastenboek gespamd werd en het contact formulier niet.
>> Ik denk eerder dat je beter kan kijken hoe snel het formulier word ingevuld.

Daar kijk ik inderdaad ook naar ... maar ik zou graag weten hoe e.e.a. werkt.

Ik neem aan dat er dus sprake ik van een bot die op je site komt en op zoek gaat naar formulieren. Hoe werkt dat proces? Wordt de pagina eerst 'binnengehaald' en wordt er vervolgens gezocht naar het woord 'form'? Dat lijkt me het meest logisch.

In mijn geval staat er een token in het formulier die correspondeert met de token in de sessie. Ik ben benieuwd of zo'n bot door die beveiligingslaag heen komt door de sessie-cookie in te lezen en die te gebruiken bij het posten van het formulier. Kan zoiets?
Bart V B op 21/01/2017 18:58:54

Ik denk eerder dat je beter kan kijken hoe snel het formulier word ingevuld.
Het viel mij op dat dit echt een luttele seconde duurde. Je kan snel tikken natuurlijk, maar en je naam, email, en bericht met een heel verhaal over bruidjes en viagra dat kan een mens niet zo snel. :) En dan ook nog diverse keren achter elkaar...
Ikzelf heb ontzettend veel last gehad van spam in een gastenboek.
Daarvoor heb ik recaptcha ingezet van Google, en daarmee was het probleem snel uit de wereld.
Overigens vond ik het wel apart dat het gastenboek gespamd werd en het contact formulier niet.

Ik denkt dat zo meerdere naar span kan kijken en natuurlijk is contactformulier iets meer moeilijk en soms hebben meer velden.
Je token heeft zeker een functie. Zonder zo een token kan een bot posten zonder je pagina (met token) te laden. ([email protected]&password=NoTsOSeCrEt) en rammen maar. En inderdaad je zou een timestamp kunnen opslaan in de sessie als het token wordt meegegeven in je formulier. Krijg je binnen een halve seconde een form ingevuld terug inclusief geldig token dan zou je wel kunnen stellen dat dit volledig geautomatiseerd is gegaan. Ook een textfield die je met je css op hidden zet zou normaal gesproken leeg moeten blijven en bij een bot mogelijk ingevuld zijn. Tja gebruik je fantasie om een goede beoordeling te kunnen maken tussen fake en real.
Een token is erg nuttig, met name om je te wapenen tegen CSRF. Verder ga ik mee met Frank. Je kunt op tijd letten, onzichtbare velden toevoegen etc. Je kunt ook je veldnamen rouleren, je formulier wordt immers niet keer op keer opnieuw bekeken. Vaak heb je te maken met een tweespant: 1 bot zoekt formulieren, en een hele groep andere bots vult deze in. Het eerste wordt vaak centraal aangestuurd, waar het tweede door geinfecteerde machines wordt gedaan.

Als je niet helemaal wilt uitgaan van heuristiek zou je ook nog naar iets als projecthoneypot kunnen kijken, of Akismet.
Ik heb al die dingen die jullie noemen reeds verwerkt, dat zit dus wel goed.

Maar waar ik nog steeds benieuwd naar ben en nog geen antwoord op heb, is of zo'n bot een sessie meekrijgt als ie mijn website bezoekt. Kan zo'n bot gebruikmaken van een sessie-cookie? Want in dat geval kan ie dus de token inlezen en gedurende diezelfde sessie meesturen in de post. In dat geval is die token-beveiliging dus niet echt een beveiliging. Of zie ik dat verkeerd?
Uiteraard kan een bot dat doen. Een token is vooral nuttig om andere redenen, zoals de CSRF die ik al noemde. Verder zullen er bots zijn die geen gebruik maken van cookies, die vang je er wel mee af. Om het geheel wat ondoorzichtiger te maken kun je er voor kiezen om geen foutmelding te geven op het moment dat timings of token niet kloppen.
Hmm, oké ... thanks.

Reageren