Gå til innhold

Hvordan beskytte gjesteboken min?


Anbefalte innlegg

Hei

 

I senere tid har det med gjevne mellomrom havnet viagra og annen drittreklame i gjesteboken jeg har på hjemmesiden min. At samme faenskapen kommer i kontaktmeldingen er forsåvidt greit i og med at spam filteret tar seg av de.

 

Har forsøkt med ip og domene deny, men det ser ikke ut til å funke så eksepsjonelt bra.

 

Tror jeg må til med en form for validering osv.

 

Lik de som blir brukt på bloggsidene til vg osv.

5 bokstaver i et bilde som en må fylle inn for å kunne skrive innlegg.

 

Noen som vet hva dette heter?

 

why can't we all just be nice...

 

because the world is not a nice place.

 

takk for all hjelp.

 

*søke videre å se hva jeg finner*

Lenke til kommentar
Videoannonse
Annonse
Hei

 

I senere tid har det med gjevne mellomrom havnet viagra og annen drittreklame i gjesteboken jeg har på hjemmesiden min. At samme faenskapen kommer i kontaktmeldingen er forsåvidt greit i og med at spam filteret tar seg av de.

 

Har forsøkt med ip og domene deny, men det ser ikke ut til å funke så eksepsjonelt bra.

 

Tror jeg må til med en form for validering osv.

 

Lik de som blir brukt på bloggsidene til vg osv.

5 bokstaver i et bilde som en må fylle inn for å kunne skrive innlegg.

 

Noen som vet hva dette heter?

 

why can't we all just be nice...

 

because the world is not a nice place.

 

takk for all hjelp.

 

*søke videre å se hva jeg finner*

5555828[/snapback]

En mulig løsning: La PHP generere et tilfeldig tall, og lagre det i

<input type="hidden" name="hidCode" value="$code">

 

I tillegg skriver du ut dette på siden:

Du må skrive inn tallet <font color="red">$code</font> i boksen<br />
<input type="text" name="txtCode">

 

Deretter kjører du en sjekk på om txtCode og hidCode er like. Hvis de er like kan innlegget legges inn. På blogger og slikt blir det generert bilder. Hvis du vil bruke det i stedet må du bruke GD-modulen i PHP. Den kan generere bilder med tekst.

Lenke til kommentar

Jeg har laga et sånt script.

Selve genereringen/valg av ord er opp til deg.

Er det her snakk om et script som flyr igjennom nettet å legger til reklame, finner de nok den skrifta ganske fort(spesielt om siden har mange treffe er de vel mere hyppe på ål egge reklamen sin der)

 

bruk også htmlspesialchars() på innlegget så man ikke kan bruke html i inlegget sitt.

Uansett, her er botkoden, bildet blir ganske stort, men det klarer du sikkert endre.

Koden generer et bilde med opp til åtte bokstaver i forskjellige farger, med forskjellig tilt.

Husk å laste opp arial.ttf og legg i samme mappe som dette scriptet(eventuelt velg en annen font, og rot deg frem i scriptet der fonten blir definert...

<?php
//Bildets størrelse
$bredde= 250;
$høyde = 70;

if(!isset($_SESSION['bot'])){
$botKode = 'standard';	
} else {
$botKode = substr($_SESSION['bot'], 0, 8);	
}

$space_per_char = $bredde / (strlen($botKode) +1);

$bilde = imagecreatetruecolor($bredde, $høyde);
//her må fargene lages
//Du kan legge til flere farger i $farger[] om du vil
$bakgrunn = imagecolorallocate($bilde, 255, 255, 255);
$border = imagecolorallocate($bilde, 128, 128, 128);
$farger[] = imagecolorallocate($bilde, 128, 64, 192);
$farger[] = imagecolorallocate($bilde, 108, 192, 64);
$farger[] = imagecolorallocate($bilde, 192, 64, 128);

//Vi må fylle bakgrunnen
imagefilledrectangle($bilde, 1, 1, $bredde - 2, $høyde - 2, $bakgrunn);
//Vi må å ha border
imagerectangle($bilde, 0, 0, $bredde - 1, $høyde - 1, $border);

//Her skriver vi teksten med forskjellig farge på på hver bokstav
for ($x = 0; $x < strlen($botKode); $x++){
$farge = $farger[$x % count($farger)];
imagettftext(
$bilde,
28 + rand(0, 8),
-20 + rand(0, 40),
($x + 0.3) * $space_per_char,
50 + rand(0, 10),
$farge,
'verdana.ttf', // Dette kan du selvfølgelig bytte, bare last opp en annen TrueType font på serveren og bytt navnet het
$botKode{$x}
);
}

imageantialias($bilde, true);

//1000 random klatter for å gjøre det litt vanskeligere for en bot å lese

for($i=0; $i<1000; $i++){
$x1 = rand(5, $bredde -5);
$y1 = rand(5, $høyde - 5);
$x2 = $x1 - 4 + rand(0,8);
$y2 = $y1 - 4 + rand(0, 8);

imageline($bilde, $x1, $y1, $x2, $y2, $farger[rand(0, count($farger) - 1)]);
}

header('Content-type: image/png');
//Lag bildet
imagepng($bilde);
//Tøm cache
imagedestroy($bilde);

str_re
?>

 

demo HER

Lenke til kommentar
Ikke skriv ut det tilfeldige tallet som tekst, bruk gd og lag ett bilde som viser teksten heller

5556201[/snapback]

Det går jo an å prøve og se om en får noe mer spam. Hvis spammen uteblir er det vel greit nok?

5557407[/snapback]

 

kom dalende 3 til nå så ser ikke ut til å stoppe med det første nei.

 

*fikle videre*

Lenke til kommentar

Prøvd med botprotection scriptet jeg ga deg.

 

En løsning som er hakket sikrere er å gi et spørsmål i forma av et bilde.

 

"Hva er hovedstaden i oslo" og lignende spørsmål. Er spørsmålene i tillegg på norsk med relativt lange svar vil nok en slik bot få store problemer, men prøv med ord varianten først(minimum 8 tegn, for sikkerhets skyld

Lenke til kommentar
Prøvd med botprotection scriptet jeg ga deg.

 

En løsning som er hakket sikrere er å gi et spørsmål i forma av et bilde.

 

"Hva er hovedstaden i oslo" og lignende spørsmål. Er spørsmålene i tillegg på norsk med relativt lange svar vil nok en slik bot få store problemer, men prøv med ord varianten først(minimum 8 tegn, for sikkerhets skyld

5559145[/snapback]

 

Hva er egentlig hovedstaden i Oslo? hehe :p :!: :tease::hmm:

Lenke til kommentar

Takker så mye for denne!

 

Her er min "antibot-enabled" gjestebok

 

 

Men slet litt med å få til sessions.

 

Prøvde SID konstanten men denne kom frem som blankt.

Fant til slutt ut av at jeg måtte bruke navngitt session og føre session-id videre slik:

"antibot.php?id=".session_id();

 

antibot.php er skriptet som altså genererer bildet.

Jeg starter session i et annet skript (hvor jeg også navngir det). setter samme navn på session i antibot.php og bruker sessionvariablen "bot" for å lagre selve koden som brukeren må taste inn.

 

Vis kildekode til antibot.php

Endret av saivert
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...