Se på indsendelserne til en hvilken som helst ubeskyttet formular, og du finder det samme: snesevis af spamindlæg, falske leads, skadelige links og volapyk. Det kommer ikke fra folk, der udfylder din formular i hånden. Det er automatiske scripts, der styres af angribere og spammere. At forhindre formularspam og bot-indsendelser stopper de angreb, før de spilder din tid eller skader dine data.
Spam er mere end en irritation. Det roder i din database, skævvrider dine analytics, fylder din indbakke og kan skjule ægte sikkerhedstrusler. Effektiv beskyttelse mod bots beskytter din formular og holder dine data rene.
Det lærer du: Hvordan automatiske bots angriber formularer, hvorfor enkle beskyttelser ikke er nok, hvilke metoder mod bots der virker bedst, og hvordan du bruger dem uden at irritere ægte besøgende.
Sådan virker botangreb på formularer
En bot (kort for robot) er et automatisk program, der udfører gentagne opgaver. Bots, der angriber formularer, gør ting som:
- Udfylder automatisk hvert felt med tilfældig tekst
- Sender formularen tusindvis af gange om dagen
- Sætter links eller reklamer ind i formularfelter
- Tester for sikkerhedshuller ved at prøve formularen af
- Høster e-mailadresser, der kan lægges på spamlister
I modsætning til en hacker, der måske går efter én bestemt formular, angriber bots tusindvis af formularer i stor skala. De gennemsøger internettet efter formularer, og når de finder en, sender de automatisk spam. Du kan vågne op til 10.000 falske indsendelser i din indbakke.
Derfor er formularer sårbare over for bots
Formularer tager imod input fra alle
Formularer er designet til at være åbne mod internettet. Alle kan finde din formular og sende den. Der er ingen indledende kontrol af, at den, der sender, er et rigtigt menneske.
Formularer er forudsigelige
Hvis en bot kan se din formular i HTML'en på en webside, kan den trække formularens struktur ud og forstå, hvilke felter der skal udfyldes. Det gør formularer til lette mål for automatisering.
De fleste formularer har ingen beskyttelse
Mange hjemmesider udgiver formularer uden nogen form for bot-detektering. Bots lærer hurtigt at udnytte de ubeskyttede mål.
Derfor virker grundlæggende beskyttelse ikke
Skjulte feltnavne
Nogle tror, at det forvirrer bots at skjule formularens feltnavne. Men bots kan regne feltnavnene ud baglæns fra HTML'en eller ved at analysere formularindsendelsen. Det virker ikke.
Honeypot-felter (falske felter)
Et honeypot-felt er et skjult formularfelt, som ægte besøgende aldrig ser. Bots, der ikke forstår CSS eller skjulte attributter, udfylder det alligevel. Du kan afvise indsendelser, hvor honeypot-feltet er udfyldt.
Det virker mod meget simple bots, men avancerede bots har lært om honeypot-felter og ved, at de ikke skal udfylde dem. Det er nu et svagt forsvar alene.
Simple regnestykker eller spørgsmål
"Hvad er 2 + 2?" ser ud til at være noget, en bot ikke kan svare på. Men moderne AI og OCR-værktøjer (optisk tegngenkendelse) kan læse og løse simple regnestykker. Det forsvar er forældet.
Effektive metoder mod bots
CAPTCHA
CAPTCHA (Completely Automated Public Turing test to tell Computers and Humans Apart) er den mest almindelige metode mod bots. Der er flere typer:
Tekstbaseret CAPTCHA: Brugere løser en forvrænget tekstopgave. Ældre og mindre effektiv nu, fordi AI kan læse forvrænget tekst.
Billedbaseret CAPTCHA (reCAPTCHA v2): Brugere klikker på afkrydsningsfelter eller udpeger objekter på billeder. Mere pålidelig end tekstbaseret, men stadig ikke perfekt. Det er den, du ser på mange hjemmesider.
Usynlig CAPTCHA (reCAPTCHA v3): Brugeren ser ingenting. Systemet analyserer deres adfærd (hvordan de bevæger musen, hvor hurtigt de udfylder formularen) for at afgøre, om de er mennesker. Ingen gnidning for ægte brugere, men kræver en mere avanceret backend.
Begrænsning af antal indsendelser (rate limiting)
Rate limiting begrænser, hvor mange gange den samme IP-adresse eller brugerkonto kan sende en formular inden for en bestemt periode. Hvis en angriber forsøger at sende 1.000 formularer på 10 minutter fra den samme IP, blokerer rate limiting dem efter de første 5 indsendelser på 10 minutter.
Rate limiting er usynlig for ægte brugere (de fleste sender ikke den samme formular 20 gange på en time), men effektiv mod bots (som sender gentagne gange og i overmenneskelig hastighed).
E-mailbekræftelse
Kræv, at besøgende bekræfter deres e-mailadresse ved at klikke på et link i en bekræftelsesmail. Bots kan som regel ikke åbne e-mailindbakker (eller bruger falske e-mailadresser, der ikke findes). Det fjerner mange bot-indsendelser.
Ulempe: Det giver ekstra gnidning for ægte besøgende. Brug det til formularer med høj værdi (tilmeldinger, oprettelse af konto), hvor du er villig til at tilføje et ekstra trin.
Analyse af adfærd
Analyser, hvordan besøgende bruger formularen:
- Udfyldte de formularen i overmenneskelig hastighed (alle felter på 0,5 sekunder)? Sandsynligvis en bot.
- Satte de aldrig fokus på noget felt (tabbede bare igennem uden at skrive)? Sandsynligvis en bot.
- Udfyldte de et felt, slettede det, udfyldte det igen, slettede det igen? Sandsynligvis et menneske.
Det kræver JavaScript på formularen til at følge brugerens interaktioner. Det er usynligt for ægte brugere og effektivt mod simple bots.
Fingeraftryk af enheden
Analyser egenskaber ved den enhed, der sender formularen (browsertype, operativsystem, skærmopløsning, tidszone osv.). Bots har ofte usædvanlige eller uens fingeraftryk. Ægte enheder har mønstre, der ligner et menneske.
Det er avanceret og kræver tredjepartstjenester, men det er meget effektivt.
Hvornår du bruger hvilken metode
Til en almindelig kontaktformular
Brug rate limiting (usynlig) plus en CAPTCHA, hvis du får meget spam. E-mailbekræftelse er valgfri.
Til en tilmeldingsformular til nyhedsbrev
Brug rate limiting plus e-mailbekræftelse. Det bekræfter, at e-mailen er ægte, og forhindrer masseindmeldelser af falske adresser.
Til en formular med høj værdi (oprettelse af konto, betaling osv.)
Brug flere lag: rate limiting, CAPTCHA, e-mailbekræftelse. Overvej adfærdsanalyse for ekstra sikkerhed.
Til et API-endpoint eller programmatisk adgang
Brug API-godkendelse (tokens eller API-nøgler) i stedet for CAPTCHA. CAPTCHA virker ikke til API'er. Rate limiting er afgørende.
Hvordan beskyttelse mod bots påvirker brugeroplevelsen
Stærk beskyttelse mod bots kan give gnidning for ægte brugere. Find balancen mellem sikkerhed og brugervenlighed:
CAPTCHA: Tilføjer et par sekunder og ét ekstra trin. Synlig og lidt irriterende, men bredt accepteret af brugerne. Mange forventer den.
E-mailbekræftelse: Kræver, at brugeren tjekker sin e-mail og klikker på et link. Højere gnidning, men nødvendig ved handlinger med høj værdi.
Adfærdsanalyse eller rate limiting: Usynlig. Slet ingen gnidning for ægte brugere.
Bedste praksis: Brug usynlige metoder først (rate limiting, adfærdsanalyse). Vis kun en CAPTCHA, hvis indsendelsen ser mistænkelig ud. På den måde ser 95 % af de ægte brugere aldrig en CAPTCHA, mens bots næsten altid gør.
Overvåg formularindsendelser for spam
Selv med beskyttelse mod bots kan noget spam slippe igennem. Overvåg dine indsendelser:
- Gennemgå nye indsendelser jævnligt for tydelige spammønstre
- Kig efter indsendelser med volapyk eller links
- Følg antallet af indsendelser (hvis det pludselig stiger, er du måske under angreb)
- Tjek, hvilke lande indsendelserne kommer fra (hvis du kun betjener USA, kan indsendelser fra visse lande være mistænkelige)
De fleste formularer lader dig markere indsendelser som spam. Brug det til at træne maskinlæringsmodeller, der kan hjælpe med at forhindre fremtidig spam.
Det gør WEMASY mod spam
WEMASY-formularer har beskyttelse mod bots fra start. Hver formular har rate limiting (flere indsendelser fra den samme IP bremses) og valgfri CAPTCHA-beskyttelse (reCAPTCHA v3). Du kan slå e-mailbekræftelse til for formularer, der kræver det. WEMASY overvåger også indsendelser for spammønstre og markerer mistænkelige indlæg.
Alle formularer kommer med spambeskyttelse. Mere avanceret beskyttelse findes i højere planer. Se detaljer om din plan på prissiden.