Miten estää bottien lomakeroskaposti?

Haitallisten bottien liikenteen määrä verrattuna kaikkeen internetissä tapahtuvaan liikenteeseen on kasvanut huomattavasti viime vuosina. Laskelmien mukaan vuonna 2016 liikenteen määrä oli vielä alle 20%, mutta vuonna 2022 se oli kasvanut jo yli 30%:n (Statista). Tämän vuoksi myös internetsivujen lomakkeiden kautta lähetettävän roskapostin määrä on kasvussa. Kannattaa suojautua ennen kuin tästä muodostuu ongelma.

Sisältö

Roskapostin aiheuttama haitta

Internetsivustosi lomakespämmi haittaa monella tavalla.

  • joudut seulomaan suuren määrän viestejä löytääksesi aidot viestit ja kaikki vastausaikasi hidastuvat
  • sivustosi toiminta hidastuu, mikä johtaa sekä heikompaan hakukonenäkyvyyteen että saatat joutua päivittämään palvelimesi tehokkaampaan
  • sähköpostimarkkinointilistallesi saattaa rekisteröityä botteja, mikä johtaa turhaan sähköpostitukseen kampanjoissasi
  • saatat saada haitallisia linkkejä, joutua henkilötiedon kalastelun uhriksi tai sivustosi saatetaan kaapata
  • jos analysoit kävijädataa kaupallisissa tarkoituksissa, datasi ei enää pidä paikkaansa

Mitä kauemmin ongelman annetaan jatkua, sitä suuremmiksi ongelmat ja riskit muodostuvat.

Bottispämmi ja ihmisten lähettämä spämmi

Suurin osa spämmistä on estettävissä. Spämmi jaetaan usein joko ihmisten tai bottien lähettämään roskapostiin.

Ihmisten lähettämässä roskapostissa kyseessä on joko yksittäiset toimijat tai useiden toimijoiden kaupalliset yritykset, joiden tehtävänä on lähettää tiettyä viestiä lomakkeiden kautta. Käyttäytyminen aitojen asiakkaiden ja roskapostia lähettävien ihmisten välillä on samankaltaista. Tämän vuoksi näiden ryhmien erottaminen toisistaan on haastavaa. Tämä ohje keskittyy haitalliseen bottispämmiin, mutta alla on mainittu lyhyesti myös ihmisten lähettämän spämmin estämisestä WordPress -sivustollasi.

Bottien lähettämässä roskapostissa on kyse tarkoitukseen kehitetystä tietokoneohjelmasta. Hyvin suunniteltu botti kykenee lähettämään uskomattoman määrän viestejä. Botti kykenee avaamaan linkkejä ja täyttämään lomakkeita automaattisesti. Mikäli lomakkeella ei ole mitään estoa, tämä on erittäin helppoa. Botit ovat kehittyneet viime aikoina huomattavasti ja suuri osa bottispämmin estokeinoistakin voidaan nykyään ohittaa. Verkkosivujen suunnittelussa on siis ehdottomasti otettava huomioon, että sivustolle asetetun suojaamattoman lomakkeen kautta on mahdollista lähettää automaattisesti hyvin paljon spämmiä.

Ihmisten lähettämää spämmiä on lähes mahdotonta täysin estää. Haitallisten bottien spämmi sen sijaan voidaan estää käyttäen tekniikoita, joita botti ei vielä tunnista. Tämä on kuitenkin jatkuvaa kilpajuoksua spämmääjien ja estojen kehittäjien välillä.

Bottien tavoitteet

Huojentavaa tässä kilpajuoksussa on se, että suurin osa haitallisista boteista ainoastaan markkinoivat tiettyä viestiä. Tämä saattaa olla kaupallinen mainos tai muu informaatio, mikä yritetään saada näkyville mahdollisimman moneen paikkaan. Oma sivustosi pystyy todennäköisesti jatkamaan toimintaansa. Sitä vain käytetään hyväksi tämän viestin levittämiseen.

Pienempi osa boteista pyrkii vahingoittamaan sivustoasi tai kalastelemaan tietoja. On kuitenkin joitain botteja, joiden tarkoitus on vahingoittaa sivustoasi ja haitata liiketoimintaasi. Nämä botit saattavat kohdistaa sivustollesi niin suuren kuorman, että sivustosi ei enää kykene sitä käsittelemään ja koko sivusto kaatuu. Toinen vahingollinen bottiryhmä taas saattaa yrittää löytää sivustosi heikkouksia ja mahdollisesti kalastella erilaisia rikollisessa toiminnassa käytettäviä tietoja.

Usein käytettyjä keinoja estää lomakkeen roskapostia

On mahdollista kokeilla joitakin helposti asennettavia keinoja estää haitallinen bottispämmi. Valinnoissa asiakkaan käyttökokemus on erittäin tärkeää. Asiakkaiden lyhytjänteisyyden ja käyttökokemuksen takia sivustolle ei kannata asentaa ylimääräisiä tehtäviä asiakkaan ratkottavaksi. Sivustosi lomakkeiden tulisi aina toimia nopeasti ja helposti asiakkaiden käytössä. Saman lomakkeen pitäisi toisaalta olla erittäin vaikea käytettävä botille. Alla on mainittu joitakin yleisesti käytettyjä keinoja.

Ghosting

Ghosting on erittäin tehokas ja toistaiseksi harvemmin käytetty menetelmä. dxw3 Bot Spam Block -lisäosa käyttää tätä menetelmää. Ghostingissa internet -sivustolla olevan lomakkeen elementtejä ghostataan eli ne käytännössä häviävät. Koska botit eivät löydä elementtejä, ne eivät pysty lähettämään roskapostia. Lomake näkyy kuitenkin normaalisti varsinaiselle käyttäjälle. Tämän menetelmä etu on sen helppokäyttöisyys. Kun suojaus on kytketty päälle, muita asetuksia ei tarvita. Sivustolla vierailija ei joudu ratkaisemaan ylimääräisiä tehtäviä tai painelemaan nappuloita, vaan hän käyttää lomaketta normaalisti.

Honeypot

Honeypot on tällä hetkellä yksi suosituimmista ja tehokkaimmista suojautumiskeinoista lomakkeen lähettämää roskapostia vastaan. Honeypotin idea perustuu nimensä mukaisesti sen kykyyn houkutella botti ansaan. Yksinkertaisimmillaan lomakkeen ohjelmointikoodissa on mukana täytettävä kenttä, joka on toisaalta visuaalisesti piilotettu asiakkaalta. Botti lukee koodia ja asiakas visuaalisesti nähtävää lomaketta. Asiakas ei siis täytä kenttään mitään, mutta botti luulee, että se on täytettävä. Mikäli kentässä on tietoa, lomakkeen lähetys hylätään. Honeypot eri versioineen on vieläkin kohtuullisen hyvä keino estää spämmiä. Siitä on kuitenkin tullut yhä haavoittuvampi, koska nykyään botit lukevat tuon piilotukseen käytetyn koodin (CSS/JavaScript) ja osaavat reagoida sen mukaisesti.

Nopeusrajoitus

Toinen lupaava keino pysäyttää bottilomakkeen lähetys on käyttää nopeusrajoitusta. Botin teho perustuu sen nopeuteen. Botin käyttäjä yrittää lähettää lomakkeita hyvin nopeasti ja tehokkaasti. Mikäli kuitenkin liian nopea lomakkeen lähetys tai kenttien täyttäminen estetään, bottilähetys voidaan estää. Tämän keinon ongelma saattaa olla selaimen ”autofill” -toiminto, minkä tarkoitus on lisätä käyttäjäystävällisyyttä. Autofill -toiminnon takia lomakkeen täyttäminen on erittäin nopeaa. Mikäli kuitenkin osataan asettaa oikeanlaiset aikarajat, käyttäjäystävällisyys voidaan säilyttää ja silti estää bottien toimintaa.

IP osoitteiden esto

Tietynlainen bottiliikenne voidaan estää IP-osoitteisiin perustuvalla estolla. On mahdollista tallentaa haitallisia IP-osoitteita tai estää nopeasti ja toistuvasti tapahtuva lomakelähetys samasta osoitteesta. Haitalliset IP -osoitteet pitää kuitenkin tallentaa ja hakea, jotta niitä voidaan verrata. Usein ensimmäinen spämmilähetys onnistuu joka tapauksessa ja seuraava tulee muualta. Tämä tapa estää kuitenkin suurenkin määrän spämmiä toteutustavasta riippuen.

Cookie -pohjainen esto

Jotkut sivustot käyttävät hyväkseen keksejä (cookies), jotka tallentavat sessiodataa käyttäjän koneelle. Mikäli jotain keksiä ei ole asetettu sivustolla toisella sivulla kuin itse lomakkeen sivulla, lomakkeen lähetys hylätään. Koska kuitenkin botit lukevat nykyään helposti keksejä sekä käyttävät JavaScriptiä, tämä keino ei aina estä botteja. Oikein toteutettuna se voi olla tehokas ja dxw3:n suojaamat lomakkeet käyttivät aikanaan myös keksejä estämään lomakelähetykset.

Kenttien validointi

Lomakkeiden kentät kannattaa validoida, eli tarkistaa, että syötetty tieto on tarkoituksenmukaista. Tämä tuskin kuitenkin estää bottien toimintaa kovinkaan paljon, sillä botit osaavat syöttää tiedon oikein.

CAPTCHA

Aikanaan Googlen CAPTCHA oli erittäin suosittu spämminestotapa. Tämä keino on kuitenkin häviämässä, sillä se heikentää käyttäjäystävällisyyttä erittäin paljon. Erilaisten arvoitusten lisääminen lomakkeen lähettämisen yhteyteen on haitallista.

reCAPTCHA/hCAPTCHA

reCAPTCHA on käyttäjäystävällisyydeltään parempi kuin CAPTCHA. Monet sivustot käyttävät reCAPTCHA:a. Sen taustalla toimiva algoritmi yrittää päätellä, onko kyseessä botti vai ihminen. Vaikka se on käyttäjäystävällisempi, se asettaa silti ylimääräisen askeleen asiakkaalle ennen kuin lomake voidaan lähettää. Lisäksi botti saattaa kiertää tämän eston ja sen tehokas käyttö vaatii hieman enemmän työtä sivuston ylläpitäjältä.

Alkuperäisten URL:ien ja tiedostonimien vaihtaminen

Tehokas tapa estää osa bottispämmistä on muuttaa WordPressin standardit URL -osoitteet sekä joidenkin tiedostojen nimet. Tällöin itse lomakkeen löytämisestä tehdään asteen vaikeampaa.

WAF

Lähinnä isommat ohjelmistotalot tarjoavat kattavia roskapostinestopalveluja. Näiden järjestelmien ongelma on kuitenkin sekä niiden hinta että niiden haavoittuvuus ns. 0-hyökkäyksiä kohtaan. Nämä palvelut perustuvat mutkikkaille algoritmeille, joiden tarkoitus on päätellä, mikä on spämmiä. Algoritmit eivät kuitenkaan usein pysty tunnistamaan uudenlaista roskapostia, jolloin se pääsee läpi. Myös jonkin verran aidosta postista saattaa suodattua pois.

Lisäkysymykset

Yksi tapa estää bottien toimintaa on perinteisesti ollut erilaisten yksinkertaisten kysymysten asettaminen. Lomake saattaa kysyä esimerkiksi, että paljonko on 1+3. Tai sillä saattaa olla jokin helppo sanallinen kysymys. Näitä keinoja on kuitenkin haastavaa asettaa siten, että ne olisivat täysin käyttäjäystävällisiä ja tehokkaita. Laskutehtävä on ratkaistavissa ja sanallinen tehtävä saattaa olla käyttäjää haittaava.

Sähköpostin vahvistaminen

Etenkin rekisteröintilomakkeen validoinnissa voidaan käyttää sähköpostiosoitteiden tai verkkotunnusten estämistä. Tiedettyjä haitallisia verkkotunnuksia ei hyväksytä. Haitalliset sähköpostiosoitteet taas voidaan estää, jos rekisteröityminen pitää vahvistaa sähköpostiin lähetetyllä linkillä. Tätä keinoa ei kannata käyttää laajasti, sillä se heikentää käyttäjäkokemusta.

JavaScript suojauskeinona

JavaScriptin käyttäminen eri toimintojen estämiseen tai niiden toimintojen ajalliseen muuttamiseen on tehokas suojautumiskeino. Oikein toteutettuna JavaScriptillä voidaan estää suurin osa haitallisista boteista. Tiettyjä lomakkeen toimintaan liittyviä elementtejä on mahdollista asettaa käyttökelpoiseksi myöhemmin. Esimerkiksi kun lomakkeen täyttäjä on suorittanut jonkin tietyn toiminnon tietokoneellaan käyttäen näppäimistöä tai hiirtä, botteja varten asetettu ehto poistetaan dynaamisesti. Toinen keino on sallia lomakkeen käyttö vasta myöhemmin ajastamalla lomake käyttökelpoiseksi tietyn ajan jälkeen. Monet botit täyttävät lomakkeen erittäin nopeasti, jolloin ajastamalla voit estää useamman botin lähetykset. JavaScriptiin pohjautuvien tekniikoiden ongelmia ovat esimerkiksi botit, jotka osaavat suorittaa JavaScriptiä ja ratkoa nämä esteet. Toinen ongelma on käyttäjät, jotka ovat estäneet selaimensa JavaScriptin suorittamisen. Tällöin tekniikka saattaa estää botit ja samalla osan oikeista käyttäjistä. Ghostingissa tätä ongelmaa ei ole.

Kokeile oman lomakkeesi bottien lähettämän roskapostin estoa tämän sivuston spämmitesterillä.

Ihmisten lähettämän spämmin esto

Ihmisten lähettämän roskapostin estäminen onnistuu osittain esimerkiksi Akismet -lisäosan avulla. Usein ihmisten lähettämän spämmin seulomiseen joudutaan käyttämään kattavaa kirjastoa estettävistä sanoista tai IP -osoitteista. Blokkaaminen ei siis ole yhtä tehokasta, mutta mikäli tällainen roskaposti on ongelma, kannattaa käyttää jotain WordPressin lukuisista lisäosista.

WordPressin Contact Form 7 ja WPForms -roskapostin esto

Lähes poikkeuksetta WordPress -kotisivuilla on sivu, jolla on myös kontaktointilomake. Contact Form 7 ja WPForms ovat WordPress -sivustojen yleisimmät kontaktointilomakkeen toteuttamiseen tarkoitetut lisäosat. CF7 -lisäosalla ei ole alun perin mitään roskapostin estoa, joten roskapostin lähettäminen on erittäin helppoa. CF7:lle voidaan kuitenkin yhdistää Googlen reCAPTCHA. WPForms sen sijaan tarjoaa nykyään oletuksena oman tokeniin pohjautuvan suojan sekä lukuisia kolmansien osapuolien laajennuksia. Tokeniin pohjautuva suoja on botille kohtalaisen helppo kiertää ja esimerkiksi tämän sivuston yksinkertainen roskapostitesteri kykenee lähettämään viestit tällä tavoin suojatun lomakkeen kautta.

Kannattaa siis testata oman lomakkeen suojaa dxw3:n bottispämmin online -testerillä.

dxw3:n lomakespämmin esto perustui aiemmin osittain kekseihin (cookies). Tämä voi olla hyvin tehokas ja näkymätön tapa estää spämmiä. Käytössä oli aikanaan myös Honeypot. Nykyään esto perustuu ghostingiin. Mikäli yllä olevista keinoista ei ole apua tai muuten haluat helpon ja tehokkaan lomakespämmin eston, kannattaa hankkia ja asentaa WordPress -sivustolle dxw3 Spam Block -lisäosa. Tämä lisäosa ei vaadi asetuksia, vaan toimii aktivoinnin jälkeen automaattisesti. Mikäli kuitenkin käytät CSS -koodin optimointiin jotakin menetelmää, lue tähän liittyvä huomatus yleisistä asennusohjeista.