Repost-eston teoria

Liittynyt
03.07.2018
Viestejä
347
Yön pimeinä tunteina tuli mietittyä että pystyykö mitenkään toteuttamaan nettilomakkeeseen repost-estoa, ilman että käyttää hyväkseen tietokantaa tai ulkoista palvelua ?

Tarkoittaa sitä että haittaa haluava käyttäjä voi painaa F5-nappia, tai automatisoida esim. php:n curlin pommittamaan lomaketta.

Eli jos luon vaikka sessioon tai cookieen key-value parin, niin mikään ei estä käyttämästä tätä paria uudestaan jos käytössä ei siis ole tietokantaa mistä tuon parin voisi poistaa tai merkitä käytetyksi.

Tekniikalla ei niin väliä, esim. php + js
 
Liittynyt
17.10.2016
Viestejä
4 589
Yhdellä php:lla värkätyllä sivustolla on itse toteutettu vieraskirja, johon alkoi tulla spämmiä. Viritin sinne aikoinaan seuraavan systeemin, joka on toiminut todella hyvin:
- POST hylätään jos käyttäjällä ei ole sessiota
- POST hylätään jos viestin kirjoitus lomakkeen avaamisesta ei ole kulunut tiettyä aikaa (esim. 10 sekuntia, joka normaalilla käyttäjällä vähintään menee viestin kirjoittamiseen)

Vastaava toimisi varmaan auttavasti tässäkin. Eli pakollinen sessio ja aikalimiitit.
 
Liittynyt
12.12.2017
Viestejä
10
Toteutin Googlen recaptchan avulla tällaisen "vedenpitävän" systeemin:

selain: käyttäjä tekee captchan -> saatu token postataan palvelimelle
palvelin: validoi tokenin googlelta, jos ok, tallennetaan token sessioon -> selaimelle palautetaan ok
selain: postaa lomakkeen + tokenin palvelimelle
palvelin: tarkistaa että token täsmää sessioon tallennettuun tokeniin

Jos postatun lomakkeen token ei täsmää session tokeniin, lomake hylätään.
Jos sessioon ei ole tallennettu tokenia, lomake hylätään.
Jos tokenin validointi googlella ei onnistu, sessioon tallennettu token tyhjennetään.
Kun lomake käsitellään palvelimella, sessioon tallennettu token tyhjennetään.

Recaptchan täyttöä ei siis voi ohittaa, se on tehtävä joka kerta kun lomake lähetetään palvelimelle.

Tosin tässäkin on tietysti ongelmana se, että joissakin maissa kannattaa maksaa ihmisille että ne kirjoittelevat mainosviestejä käsin. Siihen ei auta captchat.
 
Liittynyt
19.10.2016
Viestejä
1 560
^Jos sivulla ei tarvitse käyttää mitään valtakieliä (esim. englanti), myös joku helppo sanallinen kysymys voisi olla toimiva ratkaisu. Kone ei luultavasti ainakaan vielä osaa ihan tuosta vaan moista ratkaista eivätkä maksetut kirjoittelijat ymmärrä esim. suomea. Luultavasti kysymyksiä kannattaa toki olla useampikin, ja jos kovasti on suosiota luvassa, kysymysten generointi jollain logiikalla voisi sekin olla tarpeen. Lisäksi haasteena on keksiä tarpeeksi monimutkaisia kysymyksiä, jotta niihin ei ole helppo vastata kieltä ymmärtämättäkin, mutta silti tarpeeksi yksinkertaisia, jotta vähän tyhmempikin ihminen osaa vastata. Hatusta vedettynä suomeksi joku kysymys saattaisi ehkä pystyä olemaan vaikka "Mikä on sanan "kissalle" perusmuoto?", johon vastaus on toki kissa. Tosin lieneekö tuo sitten jo liian vaikea kysymys...
 
Liittynyt
03.07.2018
Viestejä
347
Kiitos vastauksista. Todella hyviä ideoita!
Jos ei erillistä / valmista captha-pluginia käytetä, niin tuota session tallentamista en kyllä ymmärrä.
Koska cookie luodaan sivun lataushetkellä
ja se tarkastetaan lomakkeen postaus-hetkellä, joten ainahan sen voi curlilla laittaa tekemään noita luonteja.
Mutta tosiaan jos kookie luodaan jo sillä sivulla mistä lomakkeelle mahdollisesti tullaan tai kun näytetään tyhjä lomake ja se sitten tyhjätään kun lomake postataan + tarkistetaan että siihen tosiaan meni kauemman kuin 10 sekuntia, niin sehän suojaa aika hyvin eikä hidasta / haittaa käyttäjää yhtään.

Joku voi sanoa että tyhmäähän se on pyörää keksiä uudestaan, käytä vaan valmista plugaria, mutta tässä oli hakusessa poisto-lomakkeen varmennus ilman että käyttäjää kiusataan captchalla. Täytyy siis jotenkin varmistaa ettei F5-painallus tms. poista liikaa tietoja.
 
Liittynyt
17.10.2016
Viestejä
4 589
Koska cookie luodaan sivun lataushetkellä
ja se tarkastetaan lomakkeen postaus-hetkellä, joten ainahan sen voi curlilla laittaa tekemään noita luonteja.
Niin, jos joku oikeasti haluaa alkaa kiusaamaan jotain yksittäistä urheiluseuran vieraskirjaa, niin ei sellaista estoa olekaan jota ei voisi kiertää. Yksikään spämmibotti ei tuota kuitenkaan itse osaa tehdä, joten ratkaisu on 99%:lle nettisivuista täysin riittävä.
 
Toggle Sidebar

Uusimmat viestit

Statistiikka

Viestiketjut
237 474
Viestejä
4 163 479
Jäsenet
70 414
Uusin jäsen
O&G

Hinta.fi

Ylös Bottom