Tuli tuossa mieleen muutamia kysymyksiä kun suunnittelin tietojen liikuttelua eri sivujen välillä.
Eli jos kuvitellaan vaikka esimerkkinä kolmisivuinen sivusto: login.php, user.php ja admin.php.
login.php:n kautta voisi mennä jompaan kumpaan sivuun (user / admin) riippuen käyttäjätunnuksista. Jos haluaisin liikutella näitä syötettyjä tunnuksia sitten ympäri sivustoa mukana, niin onko esim. $_GLOBALS toimiva / turvallinen vaihtoehto?
Tiedän että PHP:ssä on sessiot muuttujien liikuttelua varten, mutta tässä tapauksessa evästeet ovat kiellettyjä.
Toinen "kiksa" mikä tuli mieleen, liittyy siihen kun sessioitahan pystyy käyttämään myös ilman evästeitä jos liikuttelee id:tä osoiterivillä. Voisiko tämän id:n laittaa jotenkin liikkumaan esim. $_POST:lla jossain hidden kentässä sen sijaan että se liikkuisi osoiterivillä? Poistuisi ainakin se vaara, että käyttäjä copy-pastee jonnekin nettisivulle / keskustelukanavalle jonkin linkin mikä pitää sisällään session id:n.
Hoover kirjoitti:
onko esim. $_GLOBALS toimiva / turvallinen vaihtoehto?
Ei, $GLOBALSin (joo, jostain syystä siinä ei oo alaviivaa) sisältö ei pysy tallessa sivulatausten välillä.
Sessiot on se paras ratkasu. ID:n julkistaminen on käyttäjän omaa tyhmyyttä, siltä on paha suojata mitään.
Session voi kuitenkin määritellä IP-kohtaiseksi. Eli käytännössä tallettaa IP-osoitteen istunnon tietoihin ja lopettaa istunnon jos vaihtuu.
Aihe on jo aika vanha, joten et voi enää vastata siihen.