Guestbook spammen beperken

Status
Niet open voor verdere reacties.

rikietje

Gebruiker
Lid geworden
17 nov 2010
Berichten
154
Hallo,

Ik heb het hier al eens eerder over gehad op het forum, mijn gastenboek wordt gespamd (waarschijnlijk door bots)

Ik wordt voornamelijk gespamd met de volgende berichten :

Code:
It's a long time since I saw you last! forward: Addicts of long foreplays,The chick was relaxing on a sofa, caressing her petite body and especially her ripe boobs and clean shaved pussy when her boyfriend decided to join

blablabla erg vervelend.

Vroegere waren het er 6 in het uur maar ik heb dit weten terug te brengen naar 1 per 2 dagen.

De maatregelen die ik heb genomen zijn de volgende :


PHP:
if ($_POST['geenreclame'] == ""){
Om te kijken of het neppe reclame veld (wat niet zichtbaar is voor ons omdat display op none staat) is ingevuld, wanneer dit zo is hebben we te maken met een bot.

PHP:
if ($_SERVER['REQUEST_METHOD'] == "POST"){
Er voor te zorgen dat de gegevens verzonden zijn via het form.


PHP:
if ($_SESSION['id'] == $_POST['uni']){
Om te voorkomen dat mensen onnodig op F5 of refresh gaan drukken ...

Heeft er nog iemand tips?

(ik zie het liefst af van CAPTCHA omdat ik mijn bezoekers niet met het probleem wil opzadelen).

EDIT : het gastenboek is te bezichtigen op http://rikbeernink.nl/guestbook.php

Alvast bedankt!
 
Ik weet niet hoe een spam-bot te werk gaat.
Maar ik dacht, stel dat een bot standaard het eerste form pakt.
misschien is het een idee om je form 2maal op je pagina te zetten,
de eerste form doe je ook met een display: none en een action naar een php bestand die de gegevens van de zenden verwerkt in een database.

En de 2de form is voor je bezoekers.

ik weet totaal niet of het nut heeft en of bots zo werken.
Maar dit is een ideetje wat mij zo binnen schoot
 
Ik weet niet hoe een spam-bot te werk gaat.
Maar ik dacht, stel dat een bot standaard het eerste form pakt.
misschien is het een idee om je form 2maal op je pagina te zetten,
de eerste form doe je ook met een display: none en een action naar een php bestand die de gegevens van de zenden verwerkt in een database.

En de 2de form is voor je bezoekers.

ik weet totaal niet of het nut heeft en of bots zo werken.
Maar dit is een ideetje wat mij zo binnen schoot

Leuk idee, ik zal het is proberen!

Bedankt!
 
Er staat nu dit

PHP:
echo "<form action='einde.php' method='post' style='display:none;>
Reden <input type='text' name='misleiding1' />
<input type='submit'> </form>";



// if(elem.value.match(alphaExp)){

echo "<form action='' method='post' onsubmit='return formValidator()'>
	Naam : <br /> <input type='text' id='naam' name='naam' />
	<br />
	<br />
	Reactie :<br /><textarea id='bericht' name='bericht' rows='50%' cols='50%' id='bericht' style='width:300px;height:200px;font-family:Lucida Console;border:ridge;border-width: 12px;border-color: #f08520;' rows='5' ></textarea> 
	<br /><br />
	<input type='hidden' name='uni' value='$uni' />
	<input type='submit' name='submit' />
	
	<div style='display: none'><input type='text' name='geenreclame' /></div>
	
	<input type='hidden' name='uni' value='$uni' />
	</form></div>";

echo "<form action='einde.php' method='post' style='display:none;>
Reden <input type='text' name='misleiding1' />
<input type='submit'> </form>";

We zullen zien =)

EDIT: Ik heb er 1 boven en 1 onder neergezet om zeker te weten dat of de 1e doorgestuurd wordt of de 2e =)
 
Laatst bewerkt:
Leuk experiment, maar eerlijk gezegd denk ik niet dat het veel uitmaakt. Als ik een spambot zou maken, zou ik het alle formulieren laten invullen. Er bestaan immers wel meer sites met meer formulieren op een pagina.
Al moet ik bekennen dat ik ook weinig verstand heb van spambots. We horen van rikietje wel of het werkt :).
 
misschien nog een ander probeersel,

Mijn idee, een bot zal niet via de index pagina naar de form gaan. Maar direct naar de pagina met de form bv. guestbook.php.

Met dat idee in gedacht, zou je ook op de index.php een $_SESSION['antibot'] = 'SET' aan maken en op de pagina met de form

als eerste kunnen controleren of de session bestaat. Bestaat de session niet, dan is de pagina niet via de index.php geopend!
 
heb je dat idee met de session ook uitgeprobeerd?
 
heb je dat idee met de session ook uitgeprobeerd?

Ik las het vluchtig door en had het helemaal over het hoofd gezien!

Wat je dus bedoeld is dat je op de hoofdpagina een SESSION antibot aanmaakt, en die dan op YES zet.

Slim idee!

Ik ga het meteen toepassen en we zullen zien!
 
Of het dlim is weet ik niet, maar bij gebrek aan kennis van de werking van een bot moet ik op mijn fantasie terug vallen!!!!
 
Of het dlim is weet ik niet, maar bij gebrek aan kennis van de werking van een bot moet ik op mijn fantasie terug vallen!!!!

Ik denk dat dit wel wat wordt, ik heb nu op de index pagina :

PHP:
session_start();
$_SESSION['antibot']= "yes";

En op de guestbook pagina:

PHP:
if ($_SESSION['antibot'] == "yes"){

Hierdoor kan je alleen op de gastenboek pagina komen als je eerst op de homepagina bent geweest.

Als dit niet werkt ga ik de link naar het gastenboek in het menu aanpassen,

Hier zet ik dan het volgende in :

http://rikbeernink.nl/guestbook.php?anti_bot="yes"

Dan kan ik met een $_GET controleren of er werkelijk op het menu is gedrukt om in het gastenboek te komen!
 
Je kunt dit ook dubbel doen.

als je een een uniek getal aanmaak bv $uni = md5(date())
en dat nummer zet je dan in de $_SESSION[$uni] en in je link
http://rikbeernink.nl/guestbook.php?anti_bot=$uni

dan kun je die twee op de guestbook.php pagina tegen elkaar vergelijken.
 
Je kunt dit ook dubbel doen.

als je een een uniek getal aanmaak bv $uni = md5(date())
en dat nummer zet je dan in de $_SESSION[$uni] en in je link
http://rikbeernink.nl/guestbook.php?anti_bot=$uni

dan kun je die twee op de guestbook.php pagina tegen elkaar vergelijken.

Inderdaad, eerst maar is even kijken hoe dit afloopt, is bijna een experiment haha.
 
haha is het zeker.
Zou alleen wel fijn zijn als er iemand was die wat meer zou kunnen vertellen over hoe de bots te werk gaan.

Dan kun je er ook beter iets tegen verzinnen.
Maar mijn brein draait nog steeds om andere mogelijkheden te bedenken.
 
haha is het zeker.
Zou alleen wel fijn zijn als er iemand was die wat meer zou kunnen vertellen over hoe de bots te werk gaan.

Dan kun je er ook beter iets tegen verzinnen.
Maar mijn brein draait nog steeds om andere mogelijkheden te bedenken.

Ja ik denk zelf dat dat met die $uni en anders met de $_GET in de url wel wat wordt als dit niet werkt.

Maar dat zijn alleen maar gedachten haha
 
Misschien kun je een de user agent van de bot op slaan
$_SERVER['HTTP_USER_AGENT']

lijkt me dat ze niet op een browser draaien. Misschien kunnen we aan de hand van die info wel filteren!
bv dat de toegestane browsers in een array staan en als de $_SERVER['HTTP_USER_AGENT'] in de array voorkomt
dat daarna pas de verwerking begint.

mmm zult natuurlijk zien dat ze iets van header MIME gebruiken ofzo!!!!!

misschien ook een ideetje, maak van de guestbook.php iets van 12_Kys@6.php
guestbook.php is natuurlijk voor een spambot een uitnodiging om te kijken
en wat je ook nog zou kunnen doen, maar dat vergt wel het nodige code.
Elke dag als de eerste bezoeker binnen komt laat je een script starten die de links en het bestand een nieuwe naam geeft

Is een grote en brute oplossing en ik weet niet eens of het uberhaupt zal werken!!
 
Laatst bewerkt:
Weer bedankt voor de reacties!

Ik zal even kijken hoe het nu loopt, en dan post ik het morgen!
 
Nog wat leuke en simpele dingetjes die je helpen om een heleboel spambots buiten te houden:

1. Honingpot
Je maakt een veld aan met een gewone naam zoals 'name', met het type text... display:none erbij, en dan met php controleren of het ingevuld is :)

2. Timestamp
Je maakt een ander veld met bijvoorbeeld de naam 'name', en het type hidden (spambots vullen verborgen velden niet in). Als value zet je de timestamp van het laden in. Dan controleer je met php het verschil tussen de timestamp van het formulier, en de huidige timestamp. Als dit verschil bijvoorbeeld kleiner is dan 3 seconden, dan weet je dat het of onmenselijk is, of dat iemand bull**** invult.

Bij beide manieren is het behoorlijk belangrijk dat je de velden een niet zo standaard naam geeft, want als je een veld met de naam 'antibot' maakt, dan kan de bot dit herkennen :P
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan