Avatar billede anderseiler Nybegynder
13. december 2006 - 09:17 Der er 7 kommentarer og
1 løsning

Sikring mod spam

Hej.

Jeg har et stort problem med spam på min side. Min "gæstebog" bliver spammet i uendelighed af noget som ligner en robot :/ Min gæstebog består af en helt normal form:

<?
if($_POST[submit])
{
    mysql_query("INSERT INTO gb (navn,tekst) VALUES ('".$_POST[navn]."','".$_POST[tekst]."')");
}
?>

<form action="" method="POST">
Navn: <input type="text" name="navn">
Tekst: <input type="text" name="tekst">
<input type="submit" name="submit" value="gem besked">
</form>


Min form ser selvfølgelig ikke helt sådan ud (så fejl i ovenstående behøves ikke at blive fortalt, det var bare noget jeg lige skrev som eksempel ;), men det er i bund og grund det samme. Mit spørgsmål går på, om ikke man kan sikre ens gæstebøger mv. mod, at robotter spammer dem ihjel på en eller anden måde :/

Mvh
Anders Eiler
Avatar billede showsource Seniormester
13. december 2006 - 09:43 #1
Avatar billede mixeren Nybegynder
14. december 2006 - 01:40 #2
Hvis du ikke ønsker at dine brugere skal indtaste en kode som i det forslag showsource postede så kan du benytte en smule javascript, jaja det udelukker nogle få stykker fra at skrive i bogen.

indsæt et skjult input felt med tom value:
<input type="hidden" VALUE="" name="spamrobottjek">

På din submit knap sætter du du så variablen til en værdi:
OnClick="this.form.spamrobottjek.value=1;this.disabled=true;this.form.submit();"

I dit php script tjekker du så om variablen er sat, er den det så post indlæget, er den ikke så redirekt til en side med oplysninger om at gæstebogen kræver javascript.

(Dette er ikke javascript gruppe og jeg er bestemt ikke nogen haj til det, så har du problemer med den løsning, så skal du nok henvende dig i den rigtige gruppe.)
Avatar billede anderseiler Nybegynder
14. december 2006 - 07:36 #3
Okay, tak. Jeg kigger på begge løsninger. Umiddelbart kan jeg bedst bruge den fra mixeren, men den anden er bestemt også noget, som jeg skal have kigget på!

Der går lige noget tid før jeg vender tilbage - på den anden side af weekenden - men bare rolig, jeg glemmer jer ikke ;)
Avatar billede showsource Seniormester
14. december 2006 - 08:28 #4
For nu at komme med et ex. på andersejler forslag, blandet med session:

<?php
session_start();

if(isset($_POST["navn"], $_POST["reference"])) {

    if($_POST["reference"] == $_SESSION["tjek"]) {
    echo"OK";
    }else{
    echo"NIX;";
    }
    exit;

}else{

$_SESSION["tjek"] = md5(time());

}


?>
<form method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>">
<input type="hidden" name="reference" value="">
<input type="text" name="navn"><br />
<input type="submit" value="Send" onclick="this.form.reference.value='<?php echo $_SESSION["tjek"]; ?>'">

</form>
Avatar billede anderseiler Nybegynder
04. januar 2007 - 10:13 #5
I må undskylde den lange ventetid, men juleferien osv. kom lige pludselig ind over mig.

Men jeg vil sådan set gerne give jer begge to point, da jeg kan bruge begge løsninger! Er det okay? :)
Avatar billede showsource Seniormester
04. januar 2007 - 18:24 #6
Ok!
Avatar billede anderseiler Nybegynder
23. januar 2007 - 11:21 #7
Der ser ikke ud til at ske mere, så du får bare det hele, så tråden kan lukkes!

Mvh
Anders
Avatar billede mixeren Nybegynder
08. februar 2007 - 01:58 #8
Beklager den manglende respons, har vist fået fjernet den mail adresse jeg bruge her. Men det betyder ikke noget, samler slet ikke på point. :-)
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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