nette s autentizaciou/autorizaciou ale bez cookies – da sa to?
- xr
- Člen | 94
zdravim.
napadlo ma, ze v nette urobim remake jedneho starsieho projeku, ktory vsak mal jeden dost paradoxny poziadavok na to, aby vobec bezal. na klientov sa prakticky nemohli ziadne data ukladat. t.j. vsetko bezalo bez cookies. napadlo ma prerobit handler session do databazy (prakticky tam je nieco jednoduche na podobnom principe, kde sa v URL udrzuje token a server drzi kontext, ale nie az take, ze by to fungovalo univerzalne ako session.
moja otazka znie (teda niekolko otazok): existuje na nette nejaky sposob, ktory by bez session udrzoval kontext? da sa na nette napojit handler, ktory drzi kontext v databaze a vyuzivat na to tento handler? v tom pripade, su routy schopne vydrziavat nejaky token na identifikaciu uzivatela? (cez persistent parameter?)
- David Grudl
- Nette Core | 8228
Lze to udělat přímo na úrovni PHP, tj. Nette tomu nepomůže ani nebude bránit. Viz příklad na http://php.net/…-handler.php
- xr
- Člen | 94
dakujem za odpoved.
este mam otazku – ked sa pouziva tento vlastny sposob na sessiony, session ID si browser aj tak predsa uklada do cookies, nie ? cookies prave pouzit nemozem. v tom je ten problem. mne nejde o problem so sessions na strane servra, ale na strane klienta. je na to pouzitelny napad s tokenom ‚ulozenom‘ v URL prostrednictvom persistent parametra (napr. v BasePresenter) ?
- srigi
- Nette Blogger | 558
xr napsal(a):
dakujem za odpoved.
este mam otazku – ked sa pouziva tento vlastny sposob na sessiony, session ID si browser aj tak predsa uklada do cookies, nie ? cookies prave pouzit nemozem. v tom je ten problem. mne nejde o problem so sessions na strane servra, ale na strane klienta. je na to pouzitelny napad s tokenom ‚ulozenom‘ v URL prostrednictvom persistent parametra (napr. v BasePresenter) ?
Toto mas tiez v manuali – Session sa manazuje pomocou tokenu defaultne pomenovanym PHPSESSID. Tento sa prenasa primarne cez cookie alebo URL. PHP je bezne nakonfigurovane, ze vyuziva iba cookie a prenasanie PHPSESSID cez URL je zakazane. Treba si to odblokovat a PHPSESSID sa ti zacne prenasat cez URL. Nemalo by to mat ziadny vplyv na Nette a jeho routing, PHP engine pravdepodobne PHPSESSID odobere token z URL este pred predanim riadenia do aplikacie (v $_GET by sa ten token nemal vyskytovat, aj ked v URL je). Vyskusaj, uvidis.