Gå til innhold

Et lite tips: stopping av spamboter i kommentarfelt o.l.


Anbefalte innlegg

Hei,

 

Har i dag og i går puslet rundt med en liten idé for å stoppe de ekle spambotene fra å spamme kommentarfelt, kontaktskjema og hva det nå måtte være. Jeg utvikler for tiden et prosjekt for en kunde, og der har jeg nå tatt i bruk følgende løsning på alle former: en tidssjekk! Dersom formen "submittes" innen 5 sekunder, stoppes scriptet. Spamboter vil submitte formen med en gang (iom. den er automatisert), og jeg kan ikke tenke meg noe annet en at dette må være en meget effektiv løsning. 99,9% av alle mennesker som faktisk skal bruke formen vil bruke mer en 5 sekunder på den. I verste fall kan en jo bare legge til en notis ("Ikke send dette skjemaet før det er gått minst 5 sekunder"). Dette kombinert med andre teknikker (som hidden input fields) burde vel stoppe de fleste botene. Pdd. kjører jeg kun hidden input fields på eatmyape.com, og etter den løsningen ble implementert har jeg ikke motatt en eneste spam fra boter.

 

Dette gjelder for øvrig de fleste webbaserte programmeringsspråk (python, ruby, php), derfor legger jeg det her.

 

Noen som har noen innspill her? Er 5 sekunder for mye? Noen andre ting jeg ikke har tenkt på?

Lenke til kommentar
Videoannonse
Annonse
Hei,

 

Har i dag og i går puslet rundt med en liten idé for å stoppe de ekle spambotene fra å spamme kommentarfelt, kontaktskjema og hva det nå måtte være. Jeg utvikler for tiden et prosjekt for en kunde, og der har jeg nå tatt i bruk følgende løsning på alle former: en tidssjekk! Dersom formen "submittes" innen 5 sekunder, stoppes scriptet. Spamboter vil submitte formen med en gang (iom. den er automatisert), og jeg kan ikke tenke meg noe annet en at dette må være en meget effektiv løsning. 99,9% av alle mennesker som faktisk skal bruke formen vil bruke mer en 5 sekunder på den. I verste fall kan en jo bare legge til en notis ("Ikke send dette skjemaet før det er gått minst 5 sekunder"). Dette kombinert med andre teknikker (som hidden input fields) burde vel stoppe de fleste botene. Pdd. kjører jeg kun hidden input fields på eatmyape.com, og etter den løsningen ble implementert har jeg ikke motatt en eneste spam fra boter.

 

Dette gjelder for øvrig de fleste webbaserte programmeringsspråk (python, ruby, php), derfor legger jeg det her.

 

Noen som har noen innspill her? Er 5 sekunder for mye? Noen andre ting jeg ikke har tenkt på?

 

Slett ikke dumt. Det satte meg på en annen ide, som muligens også ville virket. På samme måte som at 99,9% av alle mennesker bruker mer enn fem sekunder på å fylle ut en form, så regner jeg med at omtrent samme prosentandel mennesker også bruker musen.

 

Hvis man har kode i HTML-dokumentet som trigger når brukeren beveger musen, enten over formen, eller over hele siden, så kan man adde et hidden-field til formen.

 

Jeg regner med at spam-boter bare simulerer browsere til en viss grad, og at musbevegelser er noe man ikke får til.

 

Ulempen med min metode er jo at de som av en eller annen grunn ikke kan bruke mus, ikke vil generere noen mousemove events.

 

Werner

Lenke til kommentar

Hei Werner.

 

Ja, ideén er jo i og for seg ganske god, men uten et klientspråk (javascript) vil ikke dette funke -- i tillegg til det du nevnte om de som faktisk ikke bruker mus. Både av praktiske årsaker samt. tilgjengelighetsgrunner (utviklingshemmede, for eksempel)

Lenke til kommentar
Dette hørtes jo veldig smart ut! Men en slik måte kan jo ikke brukes på logg inn felt, f. eks. bruker jo bare wand i opera f. eks.

Men... andre felt slik som registrering etc. veldig smart! :)

 

Nå er det jo ikke login-felt spamboter går etter heller, da ;) Der er det vel i så fall bruteforceboter, og det er jo null stress å sikre seg mot; blokker ip i 10 minutter etter 5 misslykkede forsøk e.l.

Lenke til kommentar
Virker ikke dum den.

Men hvorfor bruker du ikke bare et spørsmål ala "Hva er hovedstaden i Norge?" eller spamtjenester slik som Akismet? Det enkle er ofte det beste.

 

Dog ikke like brukervennlig som denne løsningen. ;) Selv har jeg blitt krafig forbannet på et par captcha-spørsmål opp igjennom. Uansett hvordan du snur og vender på det, captcha er IKKE brukervennlig for the average joe - selv om det i visse tilfeller må til.

Lenke til kommentar
Noen som har noen innspill her? Er 5 sekunder for mye? Noen andre ting jeg ikke har tenkt på?

Som de fleste andre metoder mot spam, så vil denne løsningen kun ha tidsbegrenset verdi. Når de som lager spam-bots oppdager at du bruker en tidsforsinkelse, så vil de legge inn en tilfeldig tidsforsinkelse i svineriet sitt.

Men for all del - ethvert tiltak som hjelper mot spam (selv om det bare er tidsbegrenset) er nyttig.

Lenke til kommentar
Dette hørtes jo veldig smart ut! Men en slik måte kan jo ikke brukes på logg inn felt, f. eks. bruker jo bare wand i opera f. eks.

Men... andre felt slik som registrering etc. veldig smart! :)

 

Nå er det jo ikke login-felt spamboter går etter heller, da ;)

Jo de går faktisk etter alle skjemaer.

Har oppdaget at spamroboter har spammet søkemotoren her på forumet f.eks, lettere spesielt.

 

Enda enklere tricks: legg inn et tekstfelt i et skjema som skjules med CSS. Inneholder det data er det en robot. :)

Lenke til kommentar
Virker ikke dum den.

Men hvorfor bruker du ikke bare et spørsmål ala "Hva er hovedstaden i Norge?" eller spamtjenester slik som Akismet? Det enkle er ofte det beste.

 

Dog ikke like brukervennlig som denne løsningen. ;) Selv har jeg blitt krafig forbannet på et par captcha-spørsmål opp igjennom. Uansett hvordan du snur og vender på det, captcha er IKKE brukervennlig for the average joe - selv om det i visse tilfeller må til.

Jeg snakker ikke om Captcha, men et enkelt spørsmål alle kan svare på og en inputboks.

Akismet er en gratis tjeneste hvor du sender inn kommentaren og får tilbake svar om det er spam eller ikke.

Så stort mer brukervennlig kan det vel egentlig ikke gjøres.

Lenke til kommentar

La oss nå si Turing Test istedenfor CAPTCHA :)

 

Vi bruker referer, sammen med hidden field, men med fallback til Turing Test dersom det er misstanke.

Dumt å låse folk ute.

 

JonT: Alt som krever at brukeren gjør mer enn absolutt nødvendig er ikke brukervennlig :)

Lenke til kommentar
Noen som har noen innspill her? Er 5 sekunder for mye? Noen andre ting jeg ikke har tenkt på?

Som de fleste andre metoder mot spam, så vil denne løsningen kun ha tidsbegrenset verdi. Når de som lager spam-bots oppdager at du bruker en tidsforsinkelse, så vil de legge inn en tilfeldig tidsforsinkelse i svineriet sitt.

Men for all del - ethvert tiltak som hjelper mot spam (selv om det bare er tidsbegrenset) er nyttig.

 

En femsekunders delay på spamboter vil da hindre veldig store mengder med spam i tillegg. Om vi i tilleg øker til f. eks 10 sekunder vil mengden spam pr. bot minske ekstremt mye. Om en bot får tatt 10 former på et sekund, men kun 1 form på 10 sekund sier jo det seg selv. Dette avhenger dog at tidssperren er global, og ikke bare pr. side -- jeg tviler uansett på at spammere finjusterer boter pr side. Logiske spørsmål samt. captcha er selvsagt en god (og utberedt måte), men ikke den mest brukervennlige. Og dersom boter faktisk blir finjustert er man "back to square one" igjen, med mindre man har dynamiske captchabilder - som, som sagt, hemmer brukervennligheten en hel del.

Lenke til kommentar

Det der med «hidden input» tviler jeg på fungerer i lengden. Jeg testet ut det der i sin tid, og la meg si det slik, jeg fikk fortsatt like mye spam. Det skal forsåvidt ikke så mye til for å skjønne hvorfor heller. Når type er hidden, hvordan skal brukeren klare å legge inn info der?

 

Det med 5 sekunder delay høres jo genialt ut i utgangspunktet, men hvordan har du tenkt å sikre det? Session/cookie? Det nytter iallfall ikke når endel spambots dropper å akseptere/sende det ...

Lenke til kommentar
Det der med «hidden input» tviler jeg på fungerer i lengden. Jeg testet ut det der i sin tid, og la meg si det slik, jeg fikk fortsatt like mye spam. Det skal forsåvidt ikke så mye til for å skjønne hvorfor heller. Når type er hidden, hvordan skal brukeren klare å legge inn info der?

 

Det med 5 sekunder delay høres jo genialt ut i utgangspunktet, men hvordan har du tenkt å sikre det? Session/cookie? Det nytter iallfall ikke når endel spambots dropper å akseptere/sende det ...

 

En blanding av HTTP_USER_AGENT og REMOTE_ADDR kanskje? :) Alle må vel sende det, så vidt jeg vet. I hvert fall IP-adresse, og det burde jo i teorien være nok.

Lenke til kommentar
Tanken min er ikke at du bruker input-typen hidden, men at du skjuler en vanlig text-input via CSS. (Type putter en id på boksen og tar display:none)

Vel, visibility:hidden fungerte iallfall heller dårlig. Nå veit jeg ikke om det å sette display:none, men det er vel heller tvilsomt. Hadde riktignok vært litt interessant å få testet akkurat de tingene der igjen. Er vel forsåvidt bare å få trukket de til seg igjen og se hva som skjer.

 

Det der med «hidden input» tviler jeg på fungerer i lengden. Jeg testet ut det der i sin tid, og la meg si det slik, jeg fikk fortsatt like mye spam. Det skal forsåvidt ikke så mye til for å skjønne hvorfor heller. Når type er hidden, hvordan skal brukeren klare å legge inn info der?

 

Det med 5 sekunder delay høres jo genialt ut i utgangspunktet, men hvordan har du tenkt å sikre det? Session/cookie? Det nytter iallfall ikke når endel spambots dropper å akseptere/sende det ...

 

En blanding av HTTP_USER_AGENT og REMOTE_ADDR kanskje? :) Alle må vel sende det, så vidt jeg vet. I hvert fall IP-adresse, og det burde jo i teorien være nok.

Nope, eneste holdepunktet er IP og den kan være delt (riktignok litt søkt at det er et problem da). «User agent» er ikke noe man må sette. En annen ting er at man teknisk sett kan utføre «IP spoofing» for å forbigå et slikt hinder. Dog, jeg tviler på at spambots finner på slikt med det første.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...