Beste Tweakers,
Sinds een aantal dagen heb ik last van spam in een gastenboek van een klant van mij. Er zit inmiddels een captcha functie in en wordt er gecontroleerd dat er geen tekens zoals; '<a', '<b', '<u' gepost kunnen worden.
Dit werkt prima, als ik zelf in mijn browsertje een tekst zoals dit invoer; 'dit is een <b>test', dan wordt er een error gegeven. Prima, dus dat werkt denk je dan. Het vreemde is echter dat deze tekens WEL gepost worden door de spammers.
De onderstaande functie checkt de 'kleiner-dan-tekens' eruit, de spammers kunnen dit soort tekens wel posten. Inmiddels heb ik al meerdere oplossingen op GoT gevonden, desondanks zou ik graag willen weten hoe meneer/mevrouw de spammert het wel voor elkaar krijgt om een '<' teken te posten.
Iemand enig idee?
ps; voor de slimmerikken; ik ben niet op zoek naar een anti-gastenboek-spam-functie, wil alleen weten hoe de spammers het wel voor elkaar krijgen en ik niet.
Sinds een aantal dagen heb ik last van spam in een gastenboek van een klant van mij. Er zit inmiddels een captcha functie in en wordt er gecontroleerd dat er geen tekens zoals; '<a', '<b', '<u' gepost kunnen worden.
Dit werkt prima, als ik zelf in mijn browsertje een tekst zoals dit invoer; 'dit is een <b>test', dan wordt er een error gegeven. Prima, dus dat werkt denk je dan. Het vreemde is echter dat deze tekens WEL gepost worden door de spammers.
De onderstaande functie checkt de 'kleiner-dan-tekens' eruit, de spammers kunnen dit soort tekens wel posten. Inmiddels heb ik al meerdere oplossingen op GoT gevonden, desondanks zou ik graag willen weten hoe meneer/mevrouw de spammert het wel voor elkaar krijgt om een '<' teken te posten.
Iemand enig idee?
ps; voor de slimmerikken; ik ben niet op zoek naar een anti-gastenboek-spam-functie, wil alleen weten hoe de spammers het wel voor elkaar krijgen en ik niet.
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
| function check_text($text) { $pattern='<a'; $pos=strpos($text, $pattern); if ($pos !== false) { return false; } $pattern='<s'; $pos=strpos($text, $pattern); if ($pos !== false) { return false; } $pattern='<i'; $pos=strpos($text, $pattern); if ($pos !== false) { return false; } $pattern='<b'; $pos=strpos($text, $pattern); if ($pos !== false) { return false; } return true; } |