Ik heb een website die ik al een aantal jaar heb ontworpen.
Weinig word daar nog aan veranderd voor mijn klant, maar het is vooral om een online portfolio te hebben.
Enkel krijg ik de laatste tijd alsmaar spam binnen via het gastenboek, met IP adressen uit Rusia, Urkaine, ...
Ik heb een tijdje geleden zo'n heele reeks IP adressen geband, maar volgens mij werken ze met een proxy of VPN.
Zou dit opgelost kunnen worden met een captcha? of met een tijdslimiet van 10min tussen elke post?
Misschien is een controle via IP2Geo een idee, als het geen internationale bezoekers trekt? Dan kan je alleen mensen uit Nederland en België direct toelaten. De rest kan je dan een drempel geven, zoals een specifiek woord die ze moeten invullen aan de hand van een specifieke vraag.
Verder is bij een gastenboek het volgende heel erg belangrijk:
- input filtering
- output escaping
Als je wat terug bladert op dit form dan kom je gegarandeerd deze onderwerpen tegen.
Daarnaast kun je overwegen:
Moet men eerst een account aanmaken (met email verificatie) ?
Wat is de maximale lengte van een bericht ?
Moet de beheerder een bericht misschien eerst goedkeuren alvorens deze zichtbaar wordt?
[size=xsmall]Toevoeging op 04/11/2017 10:46:34:[/size]
- Ariën - op 04/11/2017 10:38:42
Misschien is een controle via IP2Geo een idee, als het geen internationale bezoekers trekt? Dan kan je alleen mensen uit Nederland en België direct toelaten. De rest kan je dan een drempel geven, zoals een specifiek woord die ze moeten invullen aan de hand van een specifieke vraag.
Klinkt als een goed idee alleen als iemand net vanaf zijn vakantie verblijf wil reageren dan heeft ie even pech..
>> Een account aanmaken is een grote drempel voor een eenmalige actie. En een goedkeuringscontrole kan, totdat je per dag honderden spamberichten krijgt.
Dat kan maar het ligt er een beetje aan hoe graag iemand een reactie wil plaatsen. Daarnaast kun je het aanmaken van een account heel simpel houden door enkel een mailadres te vragen en dan te verifiëren.
Wat bij mij altijd nog steeds verbazingwekkend goed werkt is een stukje javascript in je formulier zoals hieronder. In de POST check je dan of het hidden veld wel de juiste waarde heeft gekregen. Een hoop van die spammers halen gewoon de pagina op (als platte HTML), vullen de velden in, en POST-en 'm weer. Ze voeren dus geen javascript uit.
Bots hebben ook de neiging altijd alle velden in te vullen dus een extra veld in een verborgen div kan ook goed werken. Deze moet dan dus leeg zijn bij de validatie van het formulier
Het blokkeren van IP's, wat in wezen een blacklist is, is waarschijnlijk niet echt een oplossing, te meer omdat je zelf al aangeeft dat er constant spamberichten vanaf andere (nieuwe) IP's worden geplaatst. Een blacklist werkt eigenlijk alleen wanneer je enige garantie hebt dat je met een volledige lijst werkt. Die garantie heb je in dit geval niet.
Een (CSRF-)token invullen via JavaScript, interessant idee :). (kleine optimalisatie, wacht totdat het document geladen is? zet dit dus in een $().ready(function() { ... }); blok, zodat je zeker weet dat je hele DOM is geladen)
Een verborgen leeg veld plaatsen (volgens mij wordt dit een honeypot genoemd?) kan ook helpen.
En anders zijn er nog altijd (re)CAPTCHA-oplossingen mogelijk.
Hidden field is snel te implementeren. En je zou kunnen overwegen om simpele sommetjes op te nemen; drie + 4 =, waarbij gebruiker een antwoord moet ingeven, als veld. Als de som uitkomst niet klopt, dan heb jij er weer een niet door laten komen,