Mitenkä pystyisin tekemään Logout-tyyppisen skriptin, joka estäisi käyttäjää palaamasta sivuille back-nappulaa rämpyttelemällä?
Järjestelmä ei käytä autentikointiin sessioita, vaan tiedot liikutellaan POST:lla, joten session tuhoaminen ei auta.
Yritin tehdä redirecti sivun, joka kyllä toimii IE:lla. Opera ja Firefox sen sijaan menee surutta takaisin. :/
Miksi tällainen esto on tarpeen? Lomakkeen mahdollista uudelleen lähettämistä estääksesi? Jos näin on, laita massapostitus-esto.
Uudelleenlähetys juuri pitäisi estää. Eli kun käyttäjä painaa jotain Logout-nappulaa, niin käyttäjä ei saa päästä enää takaisin sisään järjestelmään Back-napilla.
Ainut keino mikä nyt viime iltana tuli mieleen, oli sellainen redirecti, jossa lukee käyttäjälle että Kirjaudutaan ulos..., jonka jälkeen vaikka 2s päästä selain suljetaan JavaScriptillä. Tällöin käyttäjä ei ainakaan pääsisi sisään enää Back-nappulalla.
Pistä sivun headereihin tieto, että sivua ei laiteta cacheen, ja aseta vanhenemisaika jonnekin menneisyyteen.
Tämä toimii kyllä IE:lla, mutta Opera ei välitä ainakaan mitään headerin cache-asetuksista. :I
Tarvitseekos näitä estää oikeasti?
Sivuthan ovat tallentuneet cacheen joka tapauksessa, sivuilla tuskin kuitenkaan voi tehdä mitään koska istuntoa ei enää ole (toivottavasti) olemassa.
Oikeaoppinen ratkaisu tietääkseni olisi käskeä käyttäjää tyhjentämään selaimen välimuisti istunnon päätteeksi, jos tässä oikeasti jotain halutaan estää.
edit:
Ongelmasi on sama kuin käyttäjä avaisi esim. täbeihin sivuja kirjauduttuaan ja kirjauduttuaan ulos selailisi näitä täbejä.
Kannattaa tarkastaa kattavasti netistä käsin tietoja aiheesta, ainakin nuo kaksi asiaa vaadittiin sujuvaan toimimiseen, en muista sitten mitä muita joskus itse laittelin sivulle jonka tietojen en halunnut säilyvän nähtävissä. Se kuitenkin toimi kaikilla selaimilla, sorsaa ei kuitenkaan ole tällä koneella tallessa ja netti on junassa liian hidas googletteluun.
Pekka Mansikka kirjoitti:
Miksi tällainen esto on tarpeen? Lomakkeen mahdollista uudelleen lähettämistä estääksesi? Jos näin on, laita massapostitus-esto.
Tämä on minun nähdäkseni ainoa oikeaoppinen ratkaisu, koska se ei ole riippuvainen toiminnasta käyttäjän päässä. Mikään ei taatusti estä minua palaamasta taaksepäin Back-nappulla, jos niin tahdon. Uudelleenohjaukset voin halutessani kytkeä pois päältä, samoin JavaScriptin. Ei kai mikään voi myöskään estää selainta tallentamasta sivua välimuistiin tai pakottaa tyhjentämään sitä?
Aihe on jo aika vanha, joten et voi enää vastata siihen.