Kom ihåg mig?

Säkerhet och integritet i Ajax-lösningar

 
Ämnesverktyg Visningsalternativ
Oläst 2010-11-17, 23:58 #6
pelmereds avatar
pelmered pelmered är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: May 2010
Inlägg: 1 342
pelmered pelmered är inte uppkopplad
Har WN som tidsfördriv
pelmereds avatar
 
Reg.datum: May 2010
Inlägg: 1 342
Citat:
Ursprungligen postat av rhdf Visa inlägg
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']
Va? nej... Så behöver man inte göra.
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();
pelmered är inte uppkopplad   Svara med citatSvara med citat
 

Taggar
ajax, https, javascript, kryptering, säkerhet


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 
Ämnesverktyg
Visningsalternativ

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 13:19.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017