Avatar billede cskott Nybegynder
10. september 2006 - 21:53 Der er 20 kommentarer og
1 løsning

Spam i gæstebog

Hej,
Jeg er ikke sikker på at det er det helt rigtige emne som jeg opretter spørgsmålet under.

Men hvis i kan hjælpe mig er det kanon!

Vores gæstebog på www.lokalbrugsen-turup-hesle.dk/se_gaestebog.php bliver hærget helt vildt af spam eller noget i det stil.. Det er virkelig til at blive vanvittig af. Kan man gøre et eller andet programmerings mæssigt eller hva pokker kan jeg gøre?
Avatar billede nielle Nybegynder
10. september 2006 - 22:03 #1
1) Kræv at man skal være logget ind for at kunne poste.

... eller:

2) Indsæt et lille regnestykke "12+3 = ?" ved formularen, og kræv at folk udfulder et indtastningsfelt med det rigtige resultat. Er resultatet forkert, ignoreres postningen.

... eller:

3) Indsæt et billede med nogle bogstaver. Bed folk om at skrive disse bogstaver i et indtastningsfelt. Er det ikke det rigtioge ord, ignoreres postningen.
Avatar billede nielle Nybegynder
10. september 2006 - 22:04 #2
Løsningsmodel nr. 3 kaldes for en Captcha:

http://en.wikipedia.org/wiki/Captcha
Avatar billede cskott Nybegynder
10. september 2006 - 22:08 #3
Jamen selvom det er et regnestykke eller et billede vil det vel stadig komme på.. De kan vel også læse og skrive..hehe

Har du nogen ide om hvad det går ud på det de har gang i??
Avatar billede nielle Nybegynder
10. september 2006 - 22:11 #4
Det meste af den slags spam skyldes nu automatiske programmer, som surfer nettet og poster via de formularer som de finder.

Derfor vil det hjælpe *meget* på jeres spam-problem, hvis I indføre en af de nævnte metoder. De vil nemlig beskytte mod dumme programmer, ved at give en vis sikkerhrd for at der er et menneske bag tastaturet i den anden ende.
Avatar billede nielle Nybegynder
10. september 2006 - 22:13 #5
> Har du nogen ide om hvad det går ud på det de har gang i??

Akkurart det samme som alt muligt andet spam. De vil tjne penge ved at lokke folk til at handle hos dem de reklamere for.
Avatar billede coderdk Praktikant
10. september 2006 - 22:14 #6
http://www.eksperten.dk/spm/730403

Omhandler det også lidt - Her fandt jeg en sjov måde at checke at de ikke er blacklistede... Altså lidt yderligere filtrering :)
Avatar billede cskott Nybegynder
10. september 2006 - 22:14 #7
Ok, jeg tror at jeg vil prøve at bruge Captcha, ved du hvordan det fungere med kode og sådan noget?
Avatar billede nielle Nybegynder
10. september 2006 - 22:18 #8
Faktisk tror jeg at jeg vil anbefale metode 2.

Captcha-teknologien er under kraftig beskydning af spammere, som forsøger at lære deres programmer at "læse" koden i billedet. Hvordan dette gøres er beskrevet ganske glimrende i et par af de links som mit Wikipedia-link henviser til.
Avatar billede cskott Nybegynder
10. september 2006 - 22:21 #9
Okay.. jeg kigger på..
Avatar billede nielle Nybegynder
10. september 2006 - 22:21 #10
Men ellers er der da massere af kodeeksempler på nettet:

http://captchas.net/sample/php/
Avatar billede cskott Nybegynder
11. september 2006 - 18:02 #11
Hej igen,
Jeg har valgt at bruge en selectbox med et spørgsmål og det ser ud til at virke helt fint.

Jeg kunne godt tænke mig at når der bliver svaret rigtigt/forkert på spørgsmålet at den så popper op med en meddelelse.
Kan det lade sig gøre?
Avatar billede cskott Nybegynder
11. september 2006 - 18:06 #12
Jeg har koden her:

<?PHP
$db = mysql_connect("xxx", "xxxx", "xxxxx");
mysql_select_db("lokalbrugsenthdk", $db);

if($tjek == xxx)
{

$besked = str_replace("\n", "<br>", $besked);
$dato_array = getdate();
$dato = $dato_array["mday"] . "/" .
$dato_array["mon"] . "-" . $dato_array["year"];
mysql_query("INSERT INTO gbog (navn, email, dato, besked) VALUES ('$navn', '$email', '$dato', '$besked')");
}
?>

<CENTER>
<form method="post" action=<? echo
$PHP_SELF; ?>>
<input type=hidden name=skriv value=1>
<p align=left>
<font face=verdana, arial, helvetica color=black size=2><b>Hvad er navnet på vores uddeler?</b><BR>
<SELECT name="tjek">
<option value="">vælg</option>
<option value="1">Gerda Petersen</option>
<option value="2">Arne Hansen</option>
<option value="3">Peter Skov</option>
<option value="4">Jytte Jensen</option>
<option value="5">Alice Rasmussen</option>
<option value="6">Mogens Hansen</option>
<option value="7">Tove Larsen</option>
<option value="8">Henning Mogensen</option>
<option value="9">Kurt Jensen</option>
<option value="10">Gudrun Svendsen</option>
</select><BR>
<font face=verdana, arial, helvetica color=black size=2><b>Navn:</b><br><input type=text name=navn><br>
<font face=verdana, arial, helvetica color=black size=2><b>Email:</b><br><input type=text name=email><br>
<textarea style="font-weight:bold;" onClick='this.value=""' name=besked cols=30 rows=5>Indtast din hilsen her!</TEXTAREA><br>
<input type="submit" value="Send" STYLE="font-family: verdana; font-size: 10px; color: white; background-color: gray;"> <input type="RESET" value="Fortryd" STYLE="font-family: verdana, arial, helvetica; font-size: 10px; color: white; background-color: gray;">
</form>
Avatar billede nielle Nybegynder
11. september 2006 - 18:32 #13
F.eks. sådan:

<script type="text/javascript">
function validate(form)
{
    var elm = form.tjek;
    if (elm.value != 1)
    {
        alert("Svaret er ikke rigtigt.");
        return false;
    }

    return true;
}
</script>

<form method="post" action="<? echo $PHP_SELF; ?>" onSubmit="return validate(this);">
<input type="hidden" name="skriv" value="1">
<p align=left>
<font face="verdana, arial, helvetica" color="black" size="2"><b>Hvad er navnet på vores uddeler?</b><BR>
<SELECT name="tjek">
<option value="">vælg</option>
<option value="1">Gerda Petersen</option>
<option value="2">Arne Hansen</option>
<option value="3">Peter Skov</option>
<option value="4">Jytte Jensen</option>
<option value="5">Alice Rasmussen</option>
<option value="6">Mogens Hansen</option>
<option value="7">Tove Larsen</option>
<option value="8">Henning Mogensen</option>
<option value="9">Kurt Jensen</option>
<option value="10">Gudrun Svendsen</option>
</select><BR>
<font face=verdana, arial, helvetica color=black size=2><b>Navn:</b><br><input type=text name=navn><br>
<font face=verdana, arial, helvetica color=black size=2><b>Email:</b><br><input type=text name=email><br>
<textarea style="font-weight:bold;" onClick='this.value=""' name=besked cols=30 rows=5>Indtast din hilsen her!</TEXTAREA><br>
<input type="submit" value="Send" STYLE="font-family: verdana; font-size: 10px; color: white; background-color: gray;"> <input type="RESET" value="Fortryd" STYLE="font-family: verdana, arial, helvetica; font-size: 10px; color: white; background-color: gray;">
</form>
Avatar billede cskott Nybegynder
12. september 2006 - 18:01 #14
I må gerne lægge et svar da det virker som det skal.. :-)
Avatar billede nielle Nybegynder
12. september 2006 - 21:41 #15
Svar :^)
Avatar billede cskott Nybegynder
13. september 2006 - 15:06 #16
Hej,
Det er allerede gal igen www.lokalbrugsen-turup-hesle.dk/se_gaestebog.php

Hva pokker skal jeg gøre??
Avatar billede nielle Nybegynder
13. september 2006 - 18:20 #17
I stedet for at have en drowdown som man kan vælge et endligt antal muligheder fra ... brug så et indtastningsfelt som i princippet tillader et uendeligt antal muligheder. Det er langt vanskeligere at lave et program som selv kan finde ud af det rigtige svar ... frem for at bevistløst afprøve mulighederne en for en.
Avatar billede nielle Nybegynder
13. september 2006 - 18:28 #18
En anden ting som er vigtig: Du skal *også* tjekke det submittede på serversiden. Det er ikke nok at stole på at javascriptet stopper folk i at poste. Joe the Spammer kan uden videre disable alle clientside tjek!
Avatar billede cskott Nybegynder
13. september 2006 - 19:42 #19
Men hvordan for jeg den til at tjekke det submittede?
Og hvordan bruger jeg et indtastningsfelt istedet for?
Avatar billede nielle Nybegynder
13. september 2006 - 19:45 #20
Helt lavpraktisk kan du skrive "Hvad er 2+5?" på siden. Dernæt kan duhave et indtastningsfelt:

<input type="text" name="regnestykke" value="4">

- på siden. Dette kan du aflæse på siden der submittes til, og hvis der er noget andet end 7 i feltet ignoreres posten.
Avatar billede nielle Nybegynder
13. september 2006 - 19:49 #21
En mere avanceret løsning kunne være at lave et nyt regnestykke pr. formular. Men så skal formularen dels have et unikt felt (kan være hidden), som indiker hvilken form det er der submittes, samt en tabel i databasen som har det rette svar for netop den formular.

Dette er ikke så meget anderledes end fra en Captcha-baseret løsning, hvor man jo også skal huske ordet for hver formular (billedet skifter jo hver gang formularen vises).
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

IT-JOB

Politiets Efterretningstjeneste

Configuration Manager til PET's IT-afdeling

Rambøll Management Consulting

Senior Software Engineer

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Solution Manager til Cyberdivisionen

Capgemini Danmark A/S

Open Application (Denmark)