webForumDet fria alternativet

Spam i gästbok

29 svar · 2 731 visningar · startad av tHorSeYE

tHorSeYEMedlem sedan juli 200255 inlägg
#1

Hej

Har hittat många trådar om spam i gästböcker, men jag skapar ändå en ny tråd.
Jag har en gästbok (egenkodad) som tidvis får ofantliga mängder spaminlägg. Jag har försökt stoppa det genom en randomiserad bild med tecken som användaren måste fylla i. Spambotarna verkar dock kringgå det! Vad jag inte riktigt förstår är hur spambotarna fungerar.

Fylls formuläret i rent fysiskt, eller har en egen sida skapats där samma POST-variabler finns med, eller finns det andra sätt att fylla i formulär? Använder de någon slags bildanalysprogram för att läsa av bilden, eller hur funkar det?

Hur som helst så vill jag ju gärna stoppa spammet. Bild jag genererar nu är en enfärgad bakgrund med icke-förvrängda tecken. Det lär ju vara lättare att avläsa tecknen om de inte är förvrängda, men hur stor roll spelar det egentligen? Hur smarta botar finns det där ute?

CompusaMedlem sedan jan. 20023 327 inlägg
#2

Jag gjorde en väldigt enkel lösning på en av mina hemsidor, som dock fungerar klockrent hittills. Jag har en fråga i stil med: "Skriv ordet ost baklänges". Testa detta, det kanske fungerar bättre? Känns bara onödigt att hålla på och trixa med bilder om man inte behöver :)

PeddaMedlem sedan juni 20006 032 inlägg
#3

Låter konstigt om robotarna lyckas posta. Inte vanligt att dom klarar att läsa bilder.
Hur skickar du koden från bilden? Lägger du koden i en session så brukar det funka.

silfverMedlem sedan apr. 200312 679 inlägg
#4

Är det captcha-metoden du använder? Robotar börjar tydligen lista ut hur de ska göra för att kringå de där.

Gör som Microsoft - randomisera fram en bild på en hund eller en katt och låt besökaren skriva i vilket av djuren det är. En robot kan aldrig se skillnad på en hund och en katt (än...). :)

PaceMedlem sedan juni 20019 024 inlägg
#5

Här är några tips:

Så bekämpar du spam i bloggkommentarer och i gästböcker

tHorSeYEMedlem sedan juli 200255 inlägg
#6

Hoj
Ska testa med ett textfält där användaren får skriva i svar på en fråga istället. Verkar ju stoppa en hel del. Att byta namn på input fälten är nog också en bra idé.

Hur som helst ser min kod ut såhär i alla fall:

I guestbook.php:

if ($_POST["action"] == "post" && $_POST["scramble"] == $_SESSION["nonce"]) {
//Här sparas inlägget i databasen
}

Kod för att skriva ut bilden

Skriv koden nedan f&ouml;r att  posta meddelandet. <br>
<img src="scrambleImg.php" width="55" height="30">

scrambleImg.php:

session_start();
if ( $_POST["action"] != "post") {
$nonce = mt_rand(1, 10000000); 
$nonce = substr(md5($nonce),0,5); 
$_SESSION['nonce'] = $nonce; 
}
header ("Content-type: image/png");
$handle = ImageCreate (55, 30) or exit ("Ett fel uppstod");
$text_color = ImageColorAllocate ($handle, 75, 90, 108);
$text_color = ImageColorAllocate ($handle, 255, 255, 255);
ImageString ($handle, 31, 5, 5,  $nonce, $text_color);
ImagePng ($handle);
gjohanssonMedlem sedan mars 200711 inlägg
#7

Jag läste ett smart tips i något forum som jag tror kär (nästan) idiot-säkert. Gör ett input-fält, döp det till typ "email" eller "www" eller nåt som en Spam-bot kommer att gilla. Sätt sedan ett style sheet som döljer fältet helt och hållet. Sedan kollar du bara om detta fältet är ifyllt, är det ifyllt så är det garanterat en Spam-bot.

Ex. (

<input type="text" name="www" value="" style="{display: none;}">

)

Klart att bot-arna till slut kommer lära sig detta också men det är faktiskt en riktigt slug lösning på problemet. :bire

tHorSeYEMedlem sedan juli 200255 inlägg
#8

Hur döljer jag något med stylesheets?

gjohanssonMedlem sedan mars 200711 inlägg
#9

tHorSeYE skrev:

Hur döljer jag något med stylesheets?

Men, jag förklarade ju det i koden ovan? Du kan antingen skriva en style-sheet deklaration "inline" genom att lägga till style="{display: none;}" direkt i html-taggen eller så kan du lägga till den i en klass, googla på "css class display" så hittar du säkert bra exempel...

PrometheusMedlem sedan mars 2001363 inlägg
#10

Kanske inte helt on-topic, men jag tycker det brukar fungera rätt bra med att slänga in Bad Behavior-plugin (går ganska lätt att anpassa till alla script), så slipper man en del robotspam: http://www.homelandstupidity.us/software/bad-behavior/

FIG-GHD742Medlem sedan apr. 20079 inlägg
#11

finns många lösingar
jag använda denna lösing på min hemisda, http://users.maxxflow.com/~fig-ghd742/gastbok.php där en kod slumpas fram och spara i sinsorcokie, (sory stavingen, har dyxlise)
men några gärje du bör tänka på
*För hindra att samma parson kan göra flera inlägg på kort tid.
*begränsa hur många teken som man får använda

Glöm inte att nolstäla id för din bild/säkihetskod efter du har tagit i mort data
Hackade en sida på det visen en gång genom att sicka samma fomulär data flera gånger.

B22Medlem sedan mars 2004256 inlägg
#12

Jag har läst här och försökt göra spamkontrollen med det enkla sättet att besvara en fråga. Men den verkar inte kunna läsa vad man skriver i textfältet,
eftersom jag får alltid upp att svaret är fel...skulle ni kunna titta genom min kod och se vad jag har gjort för fel så är jag mycket tacksam.

if($_POST[mess])
{

    $namn = mysql_real_escape_string($_POST['namn']);
    $url = mysql_real_escape_string($_POST['url']); 
    $epost = mysql_real_escape_string($_POST['epost']); 
    $meddelande = mysql_real_escape_string($_POST['content']); 
    $spam = mysql_real_escape_string($_POST['spam']);

       
    if($namn == NULL || $meddelande == NULL || $spam == Null){
               print "Namn, meddelnade eller svar på kontroll frågan saknas.<br/>Vänligen försök igen!<br/><br/><input type='button' value='Tillbaka' onClick='history.back()'/>";
        exit;
    }if (($spam != "Gul") or ($spam != "gul") or ($spam != "GUL")){ //spam kontroll mot robotar
       
           print "Felaktigt svar på kontroll frågan, vänligen försök igen!<br/><br/><input type='button' value='Tillbaka' onClick='history.back()'/>";
     
    }else{
        $sql = mysql_query("INSERT INTO Gastbok (namn, hemsida, epost, meddelande, datum) VALUES ('$namn', '$url', '$epost', '$meddelande', '$date')");
echo(mysql_error());

        echo "<script type=\"text/javascript\">window.location.href=window.location.href;</script>";
        }
fiddlerMedlem sedan juli 20023 617 inlägg
#13

B22: Byt ut "or" mot "and" istället.

gjohanssonMedlem sedan mars 200711 inlägg
#14
if (($spam != "Gul") or ($spam != "gul") or ($spam != "GUL"))}

Det ser ut som ett klassiskt logik/negations-fel:

Om du använder negativ matchning i ett logiskt uttryck så måste du tänka "tvärtom" när du sätter ihop if-begreppet. Det nedanstående borde funka mycket bättre för dig.

if($spam != "Gul" && $spam != "gul" && $spam != "GUL")
{

}
B22Medlem sedan mars 2004256 inlägg
#15

fiddler:
Tusen tack! Funkar fint nu :)

fiddlerMedlem sedan juli 20023 617 inlägg
#16

B22 skrev:

fiddler:
Tusen tack! Funkar fint nu :)

Vad bra! :bire
Vet inte hur många gånger jag fallit i samma fälla... :OO

B22Medlem sedan mars 2004256 inlägg
#17

fiddler skrev:

Vad bra! :bire
Vet inte hur många gånger jag fallit i samma fälla... :OO

Min tur att börja bli uppmärksam :e

Får se hur det funkar med spammen också när sidan publiceras..

Danne VMedlem sedan aug. 20068 090 inlägg
#18

Jag använder själv en egen variant av en sorts captcah som brukar kallas för "honey pot". Ganska enkel. Den bygger på gamal hederlig valideringsscript (php eller javascript). Eftersom jag använder Dreamweaver, så använder jag en plugin som heter Yaromat Check Form, som alltså kollar formuläret på vanlig sätt och skickar fram felmeddelande om man skrivit fel, t.ex.

Man gör helt enkelt så att man skapar ett eller flera extra inputs och antingen fyller med text från början (value='blabla') eller har fältet helt tomt. Sen ger man dessa extra inputs en klass. I stilmallen sätter man display:none. Vanligt folk kommer alltså inte att se dessa inputs. Men spamrobotar struntar i att kolla stilmallen, utan vill gärna fylla i nåt när dom ser ett inputfält.

I validatorscriptet sätter man alltså så att t.ex. det tomma och "osynliga" inputfältet ska vara tomt, eller det andra ska vara "blabla" (eller båda), annars skickas inte formuläret.

Piffigt och fyndigt och fungerar oavsett väder. ;)

B22Medlem sedan mars 2004256 inlägg
#19

Danne V skrev:

Jag använder själv en egen variant av en sorts captcah som brukar kallas för "honey pot". Ganska enkel. Den bygger på gamal hederlig valideringsscript (php eller javascript). Eftersom jag använder Dreamweaver, så använder jag en plugin som heter Yaromat Check Form, som alltså kollar formuläret på vanlig sätt och skickar fram felmeddelande om man skrivit fel, t.ex.

Man gör helt enkelt så att man skapar ett eller flera extra inputs och antingen fyller med text från början (value='blabla') eller har fältet helt tomt. Sen ger man dessa extra inputs en klass. I stilmallen sätter man display:none. Vanligt folk kommer alltså inte att se dessa inputs. Men spamrobotar struntar i att kolla stilmallen, utan vill gärna fylla i nåt när dom ser ett inputfält.

I validatorscriptet sätter man alltså så att t.ex. det tomma och "osynliga" inputfältet ska vara tomt, eller det andra ska vara "blabla" (eller båda), annars skickas inte formuläret.

Piffigt och fyndigt och fungerar oavsett väder. ;)

Måste nog säga att det låter mer användarvänligt.
Jag menar det är inte så roligt att låta besökaren hjälpa mig med spammen, det är mitt problem och inte besökarens...

Danne VMedlem sedan aug. 20068 090 inlägg
#20

B22 skrev:

Måste nog säga att det låter mer användarvänligt.
Jag menar det är inte så roligt att låta besökaren hjälpa mig med spammen, det är mitt problem och inte besökarens...

Min åsikt också. Jag blir själv irriterad många gånger när man t.ex. ska fylla i siffer- och bokstavskombinationer. Dels tar det OTROLIGT LÅNG TID (3 sekunder, hehehe), men mest för att man ofta inte ser om det t.ex. är ett litet "L" eller en etta, åsså skriver man fel och får göra om. Det har hänt att jag fått göra om 4-5 ggr på så sätt.

Dessutom enkelt för utvecklaren att fixa. Det enda är väl att spambottarna snart läser av stilmallen, å då är detta sättet kört också. Men jag har hittills inte fått spam via dom formulären, och jag har flera kolleger som kört systemet länge med samma goda resultat.

135 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)