/ Forside / Teknologi / Udvikling / Java Scripts / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java Scripts
#NavnPoint
molokyle 5410
Klaudi 2799
smorch 2439
kim 1360
Harlekin 1134
bentjuul 984
gibson 800
severino 695
Random 675
10  konsulent.. 626
Gæstebog - anti-spam felt?
Fra : Martin Ploug


Dato : 11-07-07 17:49

Hej

Jeg har - som mange andre - gjort flere forsøg på at
forhindre spam-indlæg i en gæstebog.

Den gæstebog jeg har forsøgt at tilpasse tager udgangspunkt
i den der er her:

http://www.hjemmesideskolen.dk/scripts/visit.asp?id=gbphpmysql

Jeg har så set flere eksempler, hvor man tilføjer et felt til formularen,
som brugeren skal skrive i for at forsøge at forhindre at spam-robotter
auto-poster spam-indlæg.

Men virker det, og hvordan laves det konkret?

Et eksempel kan ses her:
http://www.centercafeteriet.dk/www2/index.php?G%E6stebog&page=2

Kan det laves med javascript, hvor man tjekker for, om feltet indeholder
det man ønsker - altså noget med....

if feltnavn ! = "xyz"
alert "Du har indtastet noget forkert"
return false ?

eller skal / kan det laves med noget php + mysql, hvor der skal tjekkes
op imodet bestemt indhold i et felti en database?

Jeg vil helst lave det så simpelt som muligt, men det må jo også gerne være
effektivt

Nogen, der har nogle kommentarer ?

På forhånd tak.

Mvh. Martin




 
 
Kim Ludvigsen (11-07-2007)
Kommentar
Fra : Kim Ludvigsen


Dato : 11-07-07 18:10

Den 11-07-07 18.48 skrev Martin Ploug følgende:

> Jeg har så set flere eksempler, hvor man tilføjer et felt til formularen,
> som brugeren skal skrive i for at forsøge at forhindre at spam-robotter
> auto-poster spam-indlæg.
>
> Men virker det, og hvordan laves det konkret?

Nogle bruger en såkaldt CAPTCHA, hvor brugeren skal udfylde med en
tekst, der vises på et billede. Nogle spamrobotter kan godt komme forbi
den forhindring, og den er selvfølgelig ikke et problem for spammere,
der udfylder formularen manuelt.

Hvis gæstebogen udelukkende henvender sig dansktalende kan man stoppe
såvel spamrobotter som de manuelle spammere ved at skrive en dansk
tekst, der forklarer lidt om, hvad der skal skrives i feltet - uden at
skrive det pågældende ord direkte. Prøv fx at tjekke mit forum:
http://kimludvigsen.dk/phpbb2/posting.php?mode=newtopic&f=2

Ideen er så, at når formularen sendes til serveren, så tjekker scriptet
på serveren, om feltet er udfyldt korrekt. Og hvis det ikke er
tilfældet, postes indlægget ikke i gæstebogen.

> Kan det laves med javascript, hvor man tjekker for, om feltet indeholder
> det man ønsker - altså noget med....

Det er ikke særligt effektivt at benytte JavaScript. Problemet er, at så
vil den rigtige kode kunne aflæses direkte i koden på siden. Tjekket
skal ske på serveren i det sprog som gæstebogen er lavet i, fx php eller
asp.

> eller skal / kan det laves med noget php + mysql, hvor der skal tjekkes
> op imodet bestemt indhold i et felti en database?

Det er ikke nødvendigt med en database. Spammeren kan ikke aflæse
indholdet i php-scriptet, så der kan man sagtens lave tjekket i stil med:
if ($antispamfelt != "kode") echo 'die spammer, die';
else send indlægget til gæstebogen;

> Jeg vil helst lave det så simpelt som muligt, men det må jo også gerne være
> effektivt

Jeg har ikke haft ét eneste spamindlæg, siden jeg indførte
drøvtygger-tjekket i ovennævnte forum.

--
Mvh. Kim Ludvigsen
Leg med verdens første regneark, VisiCalc, og mærk historiens vingesus.
http://kimludvigsen.dk

Martin Ploug (11-07-2007)
Kommentar
Fra : Martin Ploug


Dato : 11-07-07 18:37

Hej Kim

Mange tak for dit uddybende svar.
Jeg vil prøve at kigge nærmere på det ved
lejlighed.

Mvh. Martin



Kim Ludvigsen skrev:
> Den 11-07-07 18.48 skrev Martin Ploug følgende:
>
>> Jeg har så set flere eksempler, hvor man tilføjer et felt til
>> formularen,
>> som brugeren skal skrive i for at forsøge at forhindre at spam-robotter
>> auto-poster spam-indlæg.
>>
>> Men virker det, og hvordan laves det konkret?
>
> Nogle bruger en såkaldt CAPTCHA, hvor brugeren skal udfylde med en
> tekst, der vises på et billede. Nogle spamrobotter kan godt komme
> forbi den forhindring, og den er selvfølgelig ikke et problem for
> spammere, der udfylder formularen manuelt.
>
> Hvis gæstebogen udelukkende henvender sig dansktalende kan man stoppe
> såvel spamrobotter som de manuelle spammere ved at skrive en dansk
> tekst, der forklarer lidt om, hvad der skal skrives i feltet - uden at
> skrive det pågældende ord direkte. Prøv fx at tjekke mit forum:
> http://kimludvigsen.dk/phpbb2/posting.php?mode=newtopic&f=2
>
> Ideen er så, at når formularen sendes til serveren, så tjekker
> scriptet på serveren, om feltet er udfyldt korrekt. Og hvis det ikke
> er tilfældet, postes indlægget ikke i gæstebogen.
>
>> Kan det laves med javascript, hvor man tjekker for, om feltet indeholder
>> det man ønsker - altså noget med....
>
> Det er ikke særligt effektivt at benytte JavaScript. Problemet er, at
> så vil den rigtige kode kunne aflæses direkte i koden på siden.
> Tjekket skal ske på serveren i det sprog som gæstebogen er lavet i, fx
> php eller asp.
>
>> eller skal / kan det laves med noget php + mysql, hvor der skal tjekkes
>> op imodet bestemt indhold i et felti en database?
>
> Det er ikke nødvendigt med en database. Spammeren kan ikke aflæse
> indholdet i php-scriptet, så der kan man sagtens lave tjekket i stil med:
> if ($antispamfelt != "kode") echo 'die spammer, die';
> else send indlægget til gæstebogen;
>
>> Jeg vil helst lave det så simpelt som muligt, men det må jo også
>> gerne være
>> effektivt
>
> Jeg har ikke haft ét eneste spamindlæg, siden jeg indførte
> drøvtygger-tjekket i ovennævnte forum.
>

Martin Ploug (16-07-2007)
Kommentar
Fra : Martin Ploug


Dato : 16-07-07 18:14

Martin Ploug skrev:
> Hej Kim
>
> Mange tak for dit uddybende svar.
> Jeg vil prøve at kigge nærmere på det ved
> lejlighed.
>
> Mvh. Martin
>
>
>
Hej Kim

Endnu en gang tak for hjælpen.

Jeg tror nu, at jeg har fået lavet et spam-tjekfelt
efter samme princip som på
http://kimludvigsen.dk/phpbb2/posting.php?mode=newtopic&f=2

Jeg har i formularen tilføjet nedenstående felt

<input type="text" name="tjekfelt">

og på den .php side, der er action til tilføjet nedenstående

if(is_array($HTTP_POST_VARS)) {

$tjekfelt = $HTTP_POST_VARS['tjekfelt'];

} elseif (is_array($_POST)) {

$tjekfelt = $_POST['tjekfelt'];
}

....ved ikke lige, hvad forskellen er på de to, men måske
noget med, om man kommer fra formularen eller direkte ind
på siden.

....og så selve tjekket:

if($tjekfelt != 'ko') {
echo "Tjekfeltet er ikke udfyldt korrekt. <a
href='formular.php'>Tilbage</a>";
}

/Martin



Søg
Reklame
Statistik
Spørgsmål : 177459
Tips : 31962
Nyheder : 719565
Indlæg : 6408173
Brugere : 218881

Månedens bedste
Årets bedste
Sidste års bedste