Voorkom bot registratie (howto)
Ik ben bezig met een contact formulier, maar wil natuurlijk voorkomen dat een botje (spam) hier misbruik van maakt.
Nu kun je met plaatje enzo werken, maar wat ik nu interessanter vind is hoe zo'n botje te werk gaat. Als ik dat globaal weet, weet ik ook hoe ik het kan voorkomen.
Wellicht is daar ergens wat over te vinden. Via google vind ik het iig niet.
Alvast bedankt,
Dennis
van ip adres 1 wordt de pagina contact.php ingelezen (form).
vlak daarna post vanaf ip adres 2 (compleet ander adres) een bot wat spam.
En een uurtje later herhaalt zich dat, waarbij soms wel en soms niet adres1 gelijk is.
Blokken op ip basis heeft dan ook vooral zin als je adres1 ook weet te vangen.
Kennelijk geeft de bot op adres 1 aan zijn netwerk van spambots door "dit is een form dat gevuld moet worden, en hier moet het heen".
Het is lastig om te detecteren of het van een écht mens komt of geautomatiseerd. Het is heel goed mogelijk om, bij wijze van, een geautomatiseerd systeem te maken dat exact jouw formulier verwerkt op de manier dat jij dat wilt.
Denk aan rekensommen, zinnen die voor mensen logisch zijn. Maar gebruik er wel meer dan 5, anders dan kun je die natuurlijk gewoon in dat systeem zetten en alsnog de "beveiliging" omzeilen.
De reden dat Captcha's over het algemeen populair zijn, is omdat ze best moeilijk zijn uit te lezen door systemen. Dat wil echter niet zeggen dat het niet geheel onmogelijk is.. De combinatie van usability en security is wel vaker een terugkomende factor. Vaak staat usability zwaarder tegenover security. Dat merk ik zelf best vaak met m'n bedrijf :)
Als je dus een niet standaard waarde voor de "name" gebruikt kan de bot het niet invullen, denk ik dan?
Dat van de logs is ook wel een goed idee, om daar eens in te kijken hoe vaak ze het proberen en hoe vaak het dan NIET lukt (of wel).
Ik vind sommige Captcha's behoorlijk moeilijk om te ontcijferen. Knap dat sommige scripts dat wel kunnen aan de hand van een plaatje.
laatst moet ik een Captcha invullen en woorden lezen die een groot getal vormde en het juist antwoord in een venster er naast slepen. En als klap op de vuurpijl ook nog een vraag beantwoorden.
Volgens mij testen ze ook de intelligentie meteen, haha
je kan ook proberen een dynamische naam te maken en dan gewoon met php alle $_POSTS uit lezen en dan wel iets in de naam houden waardoor php kan herkennen of het een naam is of een wachtwoord of een email of weet ik veel wat
dat heb ik dus gebouwd, maar wilde weten of dat nu 99% waterdicht is, dus daarom wilde weten hoe die bots te werk gaan en het na bootsen met een tool of wat dan ook.
<input name="email"> is gemakkelijk.
<input name="voornaam"> is al wat moeilijker, omdat het een Nederlandse term is.
Maar er is ook niet zo veel intelligentie nodig voor een bot om
<textarea name="hetbericht"> te herkennen, aangezien er vaak maar 1 textarea is.
Soms gebruikt men een
<input name="name" value=""> en dan met css zorgen dat dit element niet zichtbaar is. De gebruiker vult hem dan niet in, maar een bot mogelijk wel.
$_POST['name'] is ingevuld: afkeuren!