FAQ |
Kalender |
|
![]() |
#1 | ||
|
|||
Flitig postare
|
Om en inkommande request saknar en giltig session så bör ju ditt backend inte returnera nånting.
här finns en teknik för att hantera detta beskrivet http://ennuidesign.com/blog/Creating...cratch+Part+9/ man fixar altså ett unikt värde: $_SESSION['token'] = md5(uniqid(rand(), TRUE)); Sen sätter man detta värde i ett dolt formulärfält på alla dina sidor. Finns inte "token värdet" med i requesten så skickar man bara tillbaka en tom sida if ( $_POST['token'] == $_SESSION['token'] |
||
![]() |
![]() |
![]() |
#2 | |||
|
||||
Har WN som tidsfördriv
|
Citat:
Med PHP räcker det med att du sätter det du vill ha i sessionsvariabeln så finns den där tills sessionen får timeout. Varje gång sidan laddas om nollställs timeout tiden och detta gäller även AJAX-requests. Det räcker alltså med att sätta sessionsvariabeln när man loggar in på sidan och sedan kollar man den. Du behöver inga dolda formulär. Vid login räcker det med t.ex: $_SESSION['id'] = $userId; $_SESSION['loggedIn'] = true; Sedan kollar du på varje sida innan du gör något annat: if ($_SESSION['loggedIn'] == false || !$_SESSION['id'] > 0) die(); |
|||
![]() |
![]() |
![]() |
#3 | ||
|
|||
Flitig postare
|
ja man BEHÖVER inget formulärsfält, men om du läser sidan jag länkade till så förstår du anledningen till varför det är en bra idé
mer finns att läsa här http://shiflett.org/articles/cross-s...uest-forgeries |
||
![]() |
![]() |
![]() |
#4 | |||
|
||||
Har WN som tidsfördriv
|
Citat:
![]() Citat:
![]() Då kan du ju lyfta ut den logiken/algoritmen till ett serverside script som du anropar med AJAX. Det är dessutom mycket enklare att utveckla och underhålla mer avancerade saker i ett serverside script så det är i många fall att föredra. |
|||
![]() |
![]() |
Svara |
|
|