Spamskydd i ASP

Här bjuder jag på ett enkelt spamskydd i ASP. Det har inte släppt igenom en enda spammning på de sajter jag använder det.

Formulär
<form method=”post” action=”?do=save”>
Spamskydd: <img src=”graphics/antispamcode.jpg”><input name=”spamprot”>
</form>

ASP (do=save)
<%If Request.Querystring(”do”) = ”save” Then
Set Conn = Server.CreateObject(”ADODB.Connection”)
Conn.Open ”Provider=Microsoft.Jet.OLEDB.4.0;Data Source=” &Server.MapPath(”database\database.mdb”)

spamprotection = Request.Form(”spamprot”)
If spamprotection = ”5Z3fk” Then
SQL = ”INSERT INTO comments (title,comment,postdate,postername,website) VALUES(’” & Request.Form(”rubrik”) & ”’,'” & Request.Form(”comment”) & ”’,'” & date & ”’,'” & Request.Form(”namn”) & ”’,'” & Request.Form(”hemsida”) & ”’)”
Conn.Execute(SQL)
Response.Redirect ”comments.asp”
Else
Response.Redirect ”comments.asp”
End If
End If%>

Som du säkert ser så har jag bantat ner formuläret till enbart den input som användaren skriver in captcha-koden på bilden. Du skapar alltså en bild (JPG förslagsvis) och ser till att skriva exakt samma teckenkombination i if-satsen i ASP-koden ovan. Om användaren/spamboten skriver in något annat än just den räätta kombinationen så skickas denne tillbaka till formulärsidan utan att något matas in i databasen.

3 kommentarer

  1. Enkelt och smidigt tips!

    Personligen brukar jag köra med en input:text som jag döper till någonting som spambotar inte skulle kunna låta bli, något i stil med ”url”. Sedan döljer jag den på något innovativt sätt och i scriptet som tar emot fomulärdatan stämmer jag helt enkelt av att ”url”-fältet är tomt.

    Det har fungerat klockrent för mig, jag ser gärna kommentarer på den lösningen :)

  2. Din metod är ju faktiskt en riktigt bra lösning. Då slipper användarna skriva av massor koder. Botarna är inte bara onda, de är ointelligenta också :)

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *