webForumDet fria alternativet

Hur stoppa irriterande spam?

Webbutveckling

13 svar · 716 visningar · startad av Danne V

Medlem sedan aug. 20068 090 inlägg
Frågan#1

Förutom den vanliga dosen av dagligt spam som förpassas till papperskorgen av spamfiltret, så får jag sen en månad 10-20 spam som inte filtreras bort eftersom dom till synes skickas via mitt svarsformulär på http://tiddliboom.com/t-shirt-contact.php

Formuläret har en enkel javascriptad captchafunktion. Användaren måste svara på en fråga, annars skickas inte mailet. Svaret jämförs med värdet jag skrivit in i ett dolt fält.

Formuläret processas av ett perlskript som heter NMS Formmail http://nms-cgi.sourceforge.net/scripts.shtml och som anses vara ett av de säkraste som finns. Bl.a. processar det inte anrop från någon annan server (eller IP).

När jag får spammen, så ser dom exakt ut som normala svar från formuläret. Överst är ett testmail jag skickade själv, därunder ett spam (där jag tagit bort innehållet).

Below is the result of your feedback form. It was submitted by
(test@test.com) on Friday, June 22, 2007 at 09:17:57
---------------------------------------------------------------------------
name: Danne
email: test@test.com
message: Test för inlägg på wF.
---------------------------------------------------------------------------

REMOTE_ADDR: 84.217.35.141
HTTP_USER_AGENT: Mozilla/5.0 (Macintosh; U; PPC Mac OS X; de-de) AppleWebKit/412.6 (KHTML, like Gecko) Safari/412.2

Below is the result of your feedback form. It was submitted by
( dasnim@lip.com ) on Thursday, June 21, 2007 at 23:53:08
---------------------------------------------------------------------------
name: basder
email: dasnim@lip.com
message: Blablabla länkar till en massa porrsajter här...
---------------------------------------------------------------------------

REMOTE_ADDR: 67.85.32.46
HTTP_USER_AGENT: Opera/9.0 (Windows NT 5.1; U; en)

Som ni ser, så har jag en funktion i formuläret som tar användarens IP-adress. I spammet ovan alltså 67.85.32.46. Den är säkert spoofad, så iofs har den ingen betydelse. Men går jag till sajtens statistik så finns ingen besökare med den IP-adressen, vilket det ju borde om spammaren öppnat sidan med formuläret (manuellt eller per automatik).

Jag misstänker att spammaren på nåt sätt kan anropa formmailskriptet från sitt egen formulär och få skriptet att tro att anropet kommer från den tillåtna sajten (tiddliboom.com). Eller hur går det till? Och, förstås, hur kan man stoppa detta?

Medlem sedan dec. 20014 239 inlägg
#2

En bättre captchafunktion som generar en bild med siffror och tecken borde ge ett bättre skydd dock kan du aldrig vara helt säker. Javascript kan ju utläsas ganska enkelt och är därför inte lika bra.

Medlem sedan juli 20011 084 inlägg
#3

Danne V skrev:

Formuläret har en enkel javascriptad captchafunktion. Användaren måste svara på en fråga, annars skickas inte mailet. Svaret jämförs med värdet jag skrivit in i ett dolt fält.

Din nuvarande captcha-funktion fungerar inte alls. Vad du gör är att du tvingar riktiga besökare att fylla i rutan, men bots/script och liknande som inte stödjer javasciprt kan skicka informationen ändå. Borde det inte vara tvärtom?

Jag ber om ursäkt för mailet du fick precis med massa punkter men var tvungen att testa först om så var fallet. Jag stängde av javascript i FF och klickade på skicka. För att capcha funktionen skall ha någon effekt alls måste du ju kontrollera att fältet är ifyllt när du tar emot datan (genom php), för de anropar ju antagligen direkt mot ditt php-script. :OO

Vad som är bättre än att använda captcha är att du skapar ett tomt fält som du med hjälp av javascript lägger in den aktuella tiden. Du kontrollerar sedan att detta fält finns och att tiden är mer än ~1 minut men mindre än ~30 minuter. Ifall något av dessa inte stämmer visar du en sida där du ber besökaren bekräfta mailet en gång till. De flesta script kommer ju då inte förstå att de måste bekräfta mailet. Och du blir av med allt spam :)

Medlem sedan aug. 20068 090 inlägg
#4

mozilla skrev:

Din nuvarande captcha-funktion fungerar inte alls. Vad du gör är att du tvingar riktiga besökare att fylla i rutan, men bots/script och liknande som inte stödjer javasciprt kan skicka informationen ändå. Borde det inte vara tvärtom?

Jo. Jag erkänner att mitt hemmagjorda captcha kanske inte var världens mest genomtänkta... <vissel vissel />

mozilla skrev:

Jag ber om ursäkt för mailet du fick precis med massa punkter men var tvungen att testa först om så var fallet. Jag stängde av javascript i FF och klickade på skicka. För att capcha funktionen skall ha någon effekt alls måste du ju kontrollera att fältet är ifyllt när du tar emot datan (genom php), för de anropar ju antagligen direkt mot ditt php-script. :OO

Jo, fick det för en stund sen och förstod att nån testade. Inga problem. (Tack förresten, att du tog dej tid med det)

mozilla skrev:

Vad som är bättre än att använda captcha är att du skapar ett tomt fält som du med hjälp av javascript lägger in den aktuella tiden. Du kontrollerar sedan att detta fält finns och att tiden är mer än ~1 minut men mindre än ~30 minuter. Ifall något av dessa inte stämmer visar du en sida där du ber besökaren bekräfta mailet en gång till. De flesta script kommer ju då inte förstå att de måste bekräfta mailet. Och du blir av med allt spam :)

Det där förstod jag inte riktigt... Har du lust att förklara?

Medlem sedan aug. 20068 090 inlägg
#5

Zaiman skrev:

En bättre captchafunktion som generar en bild med siffror och tecken borde ge ett bättre skydd dock kan du aldrig vara helt säker. Javascript kan ju utläsas ganska enkelt och är därför inte lika bra.

Nej, javascript funkar tydligen inte så bra....(understatement).
Har kollat på olika captcha med bildeer, men det är lite jiddrigt att lägga in, och jag har ont om tid. Dessutom lägger ju spammarna nuförtiden ut bilden på andra sajter i realtid och låter vanliga människor skriva den rätta bokstavs/sifferkombinationen som spammaren snappar upp. Jäkligt sofistikerat. En fråga som kräver ett svar är ju inte bombsäkert heller, men kanske lite bättre?

Medlem sedan juli 2001220 inlägg
#6

En lösning kan vara att bockera alla inlägg med mer än typ 2 länkar. De flesta spam innehåller ju ett stort antal länkar.

Självklart är det bättre med en bildlösning, och även om det tar lite mer tid tycker jag du ska kolla på det. Finns många färdiga gratislösningar.

Medlem sedan aug. 20068 090 inlägg
#7

Nu fick jag några spam igen.... :(

Får nog skippa den här lösningen med perlskriptet och gå över till en php-lösning istället där man kan lägga in några hinder för spammarna.

Tack för hjälpen och tipsen, alla.

Medlem sedan dec. 2006608 inlägg
#8

Har du provat det väldigt enkla sättet med ett dolt inputfält?

Medlem sedan aug. 20068 090 inlägg
#9

andyoumaydie skrev:

Har du provat det väldigt enkla sättet med ett dolt inputfält?

Jag har ju flera dolda fält för olika uppgifter som t.ex. mailets rubrik och annat. Hur menar du att man kan göra så att dolda fält stoppar spammet?

Medlem sedan juli 200012 978 inlägg
#10

Att tänka stort är fritt, att tänka rätt är friare. Lagom modifierat av Lasp §e

captcha.bmp
Medlem sedan dec. 2006608 inlägg
#11

gjohansson har en kort förklaring här.
http://www.webforum.nu/showthread.php?p=1290499#post1290499

Har själv använt en liknande funktion på någon sida, o klarat mig ifrån spam.

Medlem sedan aug. 20068 090 inlägg
#12

andyoumaydie skrev:

gjohansson har en kort förklaring här.
http://www.webforum.nu/showthread.php?p=1290499#post1290499

Har själv använt en liknande funktion på någon sida, o klarat mig ifrån spam.

Ah... men då förutsätter det väl att man kollar just den inputen med hjälp av ett javascript? I så fall är det ju en variant på det jag redan använder (och som jag pinsamt nog skröt över i just den där tråden). Har spammaren javascriptstödet avstängt, så kan han/hon alltså skicka skiten ändå. :(

Medlem sedan feb. 200112 078 inlägg
#13

Jag vet inte hur smart den här boten är, eller ifall den manuellt programmeras av en person, men mitt skydd har fungerat 100% sedan den dagen jag implementerade det.

I den här tråden finns min lösning och ett par andra förslag. De är skrivna i ASP, men går enkelt att överföra till PHP eller annat språk enkelt.

Ursäkta om jag missat något om botens intelligens.

Medlem sedan dec. 2006608 inlägg
#14

Nä, du kan kolla den i php:n också och det är väl att rekommendera. :)

I asp har jag den här enkla kodsnutten.

if not request.form("mitt-dolda-fält")
     'skicka mail
else
     'skicka inte
end if
263 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)