Jag bytte namn på allt som heter guestbook, verkar fungera...
spam i gästbok
30 svar · 5 651 visningar · startad av soffan76 · sida 2 av 2
Frågan, av soffan76
Hej alla! Jag har en enkel gästbok byggd i ASP med en Access-databas. På senare tid har den bombarderats av en massa obehaglig spam-mail. :( Någon som har nåt tips om vad man kan göra?? MVH Sofia
Läs frågan i sin helhet →ASP Security Image Generator (CAPTCHA)
Generate images with number to make a CAPTCHA test
Hej,
här är mitt försök att införa den koden i mina kommentarfält på min sida, men jag har helt klart gjort något fel, för resultatet är att när man skriver en kommentar så postas den dubbelt, alltså det blir två identiska kommentarer efter varandra i kommentarfältet.
Det va två saker jag inte visste hur jag skulle fixa dem när jag införde koden heller. action-posts.asp-koden visste jag inte om den skulle vara kvar som den är och er kod:
"name="PostId" value="<%=PostID%>"></
fick ändrade jag till bara
"name="PostId" value="<%=ID%>"></
eftersom jag inte hade nåt värde som hette PostID.
Jag är inte utbildad eller erfaren i asp eller databaser, så ursäkta okunskapen. ;)
<%
Dim sGuid
sGuid = "{74937344-CA52-4F53-AAB9-756FD72B0AC5}"
mode = Request("mode")
If mode = "postcomment" Then
If Request("SuckMyAssAllYouSpamBotMotherFuckers") = sGuid Then
'save comment
End If
End If
%>
<script language="JavaScript">
var g_Guid = "<%=sGuid%>";
function postComment() {
document.frm.SuckMyAssAllYouSpamBotMotherFuckers.value = g_Guid;
document.frm.submit();
}
</script>
<table width="100%" cellspacing="0" cellpadding="10">
<tr>
<form method="post" action="posts.asp?what=coment_article&id=<%=ID%>&status=0" name="frm" onSubmit="return coment2()">
<td width="100%" class="text"><br>
<table width="100%" cellspacing="0" cellpadding="0" class="text_medium">
<tr>
<td width="17%" valign="top"><b>Namn</b></td>
<td width="83%" valign="top">
<input type="hidden" name="SuckMyAssAllYouSpamBotMotherFuckers" value="">
<input type="text" name="name" maxlength="25" size="40" class="input_white">
<input type="hidden" name="mode" value="postcomment">
<input type="hidden" name="PostId" value="<%=ID%>"></td>
</tr>
<tr>
<td width="17%" valign="top"><b>Kommentar</b></td>
<td width="83%" valign="top"><textarea name="message" cols="80" rows="5" class="input_white" onKeyUp="if(this.value.length>1000){this.value=this.value.substring(0,1000)};"></textarea>
<br><img src="images/grafic/nothing.gif" width="1" height="3"><br>
<input type="image" onClick="postComment();" src="images/buttons/laggtill.gif" name="image" border="0">
</td>
</tr>
</form>
</table>
posts.asp är inte samma sida som formuläret för att kommentera ligger i? I sådana fall har du inte kontrollen för att se om GUIDen stämmer. Därmed sparas två kommentarer då formuläret skickas två gånger. Ena gången vanligt och andra gången pga att JavaScriptet postar sidan. Om du lägger in GUID-kontrollen på sidan som tar emot formuläret kommer du bara få en kommentar men formuläret postas ändå två gånger. Lite onödigt tycker jag.
Dessutom finns det fler brister i att göra sådär...
Det enklaste du kan göra för att undvika spam är att skapa en bild med lite text på och be användaren skriva in texten som står i bilden i en ruta. Sidan som tar emot formuläret kollar så det står rätt text. Jag har gjort så i flera år nu och inte fått ett enda spam-meddelande. Man kan också tänka sig att fråga användaren vad 7+3 blir. Ja, du förstår tänket nu hoppas jag.
Den finaste lösningen är att införa CAPTCHA med ljud som tilläg så att även de som har svårt att se de förvrängda bilderna med text på kan ta sig vidare.
Jag kör med:
Vad är "fyra plus fyra"?
Dom har förhoppningsvis inte lärt sig svenska ännu.. inte ett spam.. Overrides metod funkade för mig tills för ca. 1 år sedan. Då började de flyga in spam.. men med
Vad är "fyra plus fyra"?
de har jag inte haft ett problem med ännu..
Tack för svaren!
jag har funderat och kollat andra lösningar i andra trådar redan innan jag valde denna lösningen och jag tycker att det är värt att lösningen inte är perfekt mot att man kan "spontankommentera" utan att skriva in koder osv.
Koder och så är bra på sidor med lite seriösare diskussioner och vuxet folk som vill få något sagt, men på sidan jag har är många runt 9-14 år och kommentarer vara så enkla som "snyggt!" eller "yeah" och då känns det som att koder kommer minska spontaniteten för mycket.
Har dessutom sett andra asp-sidor som har liknande kommentarfält utan "inskrivningskodkontroll" och som inte har problem med spam-bots så jag vet att man kan få det att fungera ok.
Nu skriver den bara ut en av kommentarerna i alla fall och får väl se imorgon om den sållat bort spammen som annars kommer över natten.
sen kanske man kan få bort en av extrapostningarna på något sätt genom att lägga nåt värde från javascriptet i requeststräng i action-koden och skicka värdena till posts.asp och då kanske man inte behöver sållningen genom den ursprungliga "postcomment" längre om man sållar via requeststrängarna?
Jag kör också med en enkel 3+1 fråga och det fungerar över förväntan. Nu är det iofs igen gästbok utan ett länktips formulär men principen är densamma.
redigerar bort detta för det verkar fungera nu när jag gjorde allt från början så var väl nåt skräp som inte skulle vara med som jag hade råkat få in där.
samma som ovanför..
Simpel lösning
En mycket simpel lösning är att lägga in en bild med tex 6 tecken i.
Värdet ska sedan knappas i ett fällt.
När fomuläret skickas till sidan som ska ta emot allt data från formuläret kontrolleras det om rätt värde har tagits emot, annars skickas besökaren tillbaks.
Helt enkelt en enkel form av CAPACHA.



