Haluan varmistaa, että lomake on lähetetty samalta palvelimelta, missä käsittely tapahtuu. Mikä olisi paras/luotettava keino ongelman ratkaisemiseksi. IP-osoitteen tarkistaminen käsittelysivulla?
mistä lomake on lähetetty
phpphp
2378
0Äänestä
Muut lukivat myös
Odottaa vastausta
Näihin keskusteluihin ei ole vielä vastattu. Ole ensimmäinen.
Vastaukset 2
Vanhimmat
sieltä palvelimeltasi, vaan sieltä käyttäjän selaimelta. Siksi IPn tarkistaminen ei toimi.
Referer-kentän voi väärentää, joten sitäkään ei voi käyttää.
ainoa tapa varmistaa että palautettu lomake on peräisin sinun palvelimeltasi, on laittaa siihen lomakkeeseen jotain tunnisteita, jotka vain sinun palvelimesi tietää.
Lisäksi lomake pitää sitoa jotenkin käyttäjän sessioon tai aikaan, tai muuten joku voisi kopioida lomakepohjan sivultasi ja pistää omille sivuilleen.
Esimerkiksi kun käyttäjä tulee sivuillesi, niin pistä joku avain hänen sessioonsa. Vaikka werWERwer23234234798SDfsdf
Pistät lomakkeeseen 3 kenttää:
< input type='text' name='palaute' value='olipa kivat sivut'>
< input type='hidden' name='timestamp' value='tähän timestamp'>
< input type='hidden' name='hash' value='tähän md5(timestamp werWERwer23234234798SDfsdf)'>
kun lomake palautuu, niin ensin tarkastat että vastaako lomakkeella oleva md5() hashi -> md5(timestamp werWERwer23234234798SDfsdf). jos vastaa, niin aikaleimaan ei ole koskettu ja lomake on sinun palvelimeltasi. Vaikka rosvosivusto hakisikin lomakkeen sivuiltasi ennen kun näyttää siitä kopion käyttäjälle, niin rosvosivusto ei saa tuota käyttäjän sessiossa olevaa avainta, koska se kulkee käyttäjän selaimen ja sinun palvelimesi välillä evästeessä.
eihän se avain kulje selaimen ja palvelimen välillä, vaan ainostaan sessionid. Tuo avain taas on käyttäjän sessiossa tallessa palvelimella.