Avatar billede stoltenborg Nybegynder
18. august 2006 - 19:26 Der er 16 kommentarer og
1 løsning

Stop af SPAM i Gæstebog

Jeg har fået lavet en gæstebog af en venlig sjæl (tror nok det var sukos herindefra). Nu er der så sket det, at en eller anden (sikkert en spam robot), sender en masse crap til konens gæstebog. I starten kom alle indlæg fra samme IP, og dette fik jeg hurtigt stoppet, via IP block i min router, men idag er der 5 nye indlæg, alle fra forskellige ip adresser....

Hvad kan jeg/I gøre for at stoppe dette ??

Det skal siges at jeg er en total noob til at kode selv.

Det hele kører på Win2003, Apache 2.X, PHP 5.04 og MySQL 3.X


Mvh. Jan
Avatar billede stoltenborg Nybegynder
18. august 2006 - 19:28 #1
Glemte lige et link til gæstebogen: http://www.galleri-lonni.dk/gbog/gbog.php
Avatar billede arne_v Ekspert
18. august 2006 - 19:40 #2
Jeg er bange for at du bliver noedt til at kraeve at brugerne registerer sig
og aktiveres etc., hvis du vil spam helt til livs.
Avatar billede stoltenborg Nybegynder
18. august 2006 - 19:44 #3
Jeg har set et sted, hvor der var en kode som billede. Denne kode skulle skrives ind i et validerings felt før indlæget blev accepteret, men fatter jo hat af at få noget sådan implementeret.....
Avatar billede arne_v Ekspert
18. august 2006 - 19:52 #4
det er ogsaa en mulighed, hvis det er en bot og ikke et menneske du skal blokere for

du skal have noget som dynamisk kan tegne et antal tegn paa formen og ved submit
validerer du om brugeren har tastet det rigtige

jeg kunne sikkert godt bixe noget PHP i loebet af weekenden, men sandsynligheden
taler for at at der er andre som har noget faerdigt liggende
Avatar billede stoltenborg Nybegynder
18. august 2006 - 20:06 #5
Jeg er næste sikker på det er en bot, da ip adressen er forskellig hver gang, hvorfor jeg tror der bruges proxy. Hvis en eller anden venlig sjæl kan hjælpe mig, evt med en karakterer i en billede fil der skal valideres løsning, ville min kone blive super glad, og når hun er glad, er jeg osse glad.

Jan
Avatar billede stoltenborg Nybegynder
18. august 2006 - 20:21 #6
Burde dette råb om hjælp måske ligge i php forummet ???
Avatar billede stoltenborg Nybegynder
18. august 2006 - 20:47 #7
Hvis en eller anden venlig sjæl vil hjælpe (helst med at indsætte en indsæt text fra billede validering), hvor konen kan beholde sin GB i nuværende form, ville det være kanon.
Evt. send mig en mail på jan (a) stoltenborg.dk
Eller ad mig på MSN: janstoltenborg (a) hotmail.com
Avatar billede halvamatoer Nybegynder
19. august 2006 - 11:32 #8
Var et hurtigt smut på nettet:

http://codewalkers.com/seecode/601.html
Avatar billede stoltenborg Nybegynder
19. august 2006 - 19:24 #9
Hej halvamator.

Jeg har kigget på det link du sendte, og prøvet om jeg kan få det sat ind i min gæstebog, men uden held. Har du mod på at kigge på det ?


Jan
Avatar billede morw Nybegynder
19. august 2006 - 23:28 #10
Det hedder Captcha - http://en.wikipedia.org/wiki/Captcha

Det stopper mange falske signups - bruger det  på kontaktformular mm

Bruger det fx selv her: http://www.megapixel.dk/admin/opret
Avatar billede arne_v Ekspert
20. august 2006 - 04:05 #11
jeg er ikke nogen ørn til PHP men her kommer mit bud

lav en stribe billeder 1.jpg, 2.jpg, ... med sære håndskrevne bogstaver

lav en captcha.php med:

<?php
define('LEN',3);
$images = array("1.jpg", "2.jpg", "3.jpg", "4.jpg", "5.jpg", "6.jpg");
$correct = array("A", "B", "C", "A", "B", "C");
function captcha_insert() {
    global $images;
    for($i=0;$i<LEN;$i++) {
        $choice[] = mt_rand(0,count($images)-1);
    }
    echo "<br>\n";
    for($i=0;$i<LEN;$i++) {
        echo "<IMG SRC='" . $images[$choice[$i]] . "'>";
    }
    echo "<br>\n";
    echo "Enter letters above: <input type='text' name='letters'><br>\n";
    echo "<input type='hidden' name='images' value='";
    for($i=0;$i<LEN;$i++) {
        if($i>0) echo ",";
        echo $choice[$i];
    }
    echo "'>";
}
function captcha_check()
{
    global $correct;
    $used = split(",",$_POST['images']);
    $answer = $_POST['letters'];
    for($i=0;$i<LEN;$i++) {
        if($correct[$used[$i]]!=$answer[$i]) die("Bots not allowed");
    }
}
?>

husk og ret $images og $correct til at matche dine billeder (du skal nok have flere
og mere blandet)

ret LEN til at være antal bogstaver der skal angives

put følgende ind i toppen af din PHP side med form:

<?php
require 'captcha.php';
?>

put følgende ind mellem <form og </form> af din PHP side med form:

<?php
captcha_insert();
?>

put følgende ind i toppen af den PHP fil du submitter til:

<?php
require 'captcha.php';
captcha_check();
?>
Avatar billede morw Nybegynder
20. august 2006 - 10:20 #12
arne, nu er du vist ikke helt vågen. Det bliver jo nødt til at være ét billede, ellers kan et script jo bare parse kildekoden og finde de img tags
Avatar billede stoltenborg Nybegynder
20. august 2006 - 10:32 #13
Anyway, jeg takker mange gange for de inputs der kommer, men jeg kan stadig ikke få liv i det. Har prøvet at indsætte det som arne_v skrev, men uden held. Nu er mine php sider helt blanke....

Jeg har disse sider i mappen gbog: gbog.php , skriv.php , gem.php , slet.php
Ud over dette, er der nogle php filer med indstillinger, men regner ikke med der skal rettes i disse.

Jeg har indsat:

<?php
require 'captcha.php';
?>

og

<?php
captcha_insert();
?>

i filen skriv.php

og

<?php
require 'captcha.php';
captcha_check();
?>

i filen gem.php

Alle filerne kan ses her: http://3dd.dk/gbog/gbog.zip


Håber stadig der er en venlig sjæl der kan hjælpe mig ;-)
Avatar billede arne_v Ekspert
20. august 2006 - 16:52 #14
morw>

Hvad nytter det at man ved at det er 1,6,4 ? For at kunne bruge det skal man vide
at 1=A, 6=C og 4=A.

Det kan et menneske finde ud af på 10 minutter, men jeg tror ikke at en bot kan.

Det er naturligvis mere sikkert at tegne de bogstaver i et billede, men så
skal man ind i noget dynamisk grafik generering - fordelen ved mine små
JPG er at man kan tegne dem i Paint.
Avatar billede arne_v Ekspert
20. august 2006 - 16:57 #15
stoltenborg>

Jeg kan ikke finde billederne i ZIP filen.

captcha_insert(); er uden for PHP sektionen

captcha.php er tilsyneladende konverteret fra text til RTF
Avatar billede morw Nybegynder
20. august 2006 - 17:15 #16
arne> Nu er det jo rimmeligt hurtigt at mappe et alfabet lavet med dit og så sidenhen sætte en bot til at oprette +10.000 konto. Tror i al fald ikke det ville gå an på fx hotmail eller gmail.

I denne case er det sikkert fint, men spammere går efterhånden langt - nu bruger de også OCR til at knække captcha billederne
Avatar billede stoltenborg Nybegynder
22. august 2006 - 10:55 #17
Jeg lukker.

Fik Martin - aka webt - til at lave det for mig, så nu kører det.
Til alle: Tak for hjælpen !!

Jan
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester