X

Aleproste na FaceBook'u

Reklama.

[PHP] Zabezpieczenie formularzy przesyłanych :: metodą POST przed podmianą danych

To porada zaczerpnięta z jedneg zartykułów opublikowanych w serwisiewebhosting.pl który na marginesie, polecam wszystkim zainteresowanych tematem.

Jedną z często wykorzystywanych luk w skryptach jest to, że nie sprawdzamy, czy dane pochodzą z tego źródła, z którego powinny pochodzić. Dotyczy to zwłaszcza formularzy wykorzystujących metodę POST, których dane łatwo dają się podmienić. Przed tym problemem można się łatwo zabezpieczyć, stosując prosty trik, a mianowicie generując silny kryptograficznie oraz unikatowy dla każdej sesji klucz. Klucz taki dodajemy do każdego formularza, a następnie wystarczy sprawdzić, czy zapamiętany klucz jest zgodny z tym otrzymanym metodą POST.

Oto kod realizujący to zadanie:

// umieszczamy zaraz po session_start();

if (!isset($_SESSION['token'])) 
{
   $_SESSION['token'] = sha1(uniqid(rand(), true));
}

// użycie: 

if (warunek1 && check()==true) 
{}

function check () 
{
   if ($_POST['token']!=$_SESSION['token'])
       die('hack');
   else
       return true;
}

Zabezpieczeń nigdy za wiele i warto je stosować, tym bardziej gdy są proste oraz skuteczne.

starr

opublikowane 28-03-2010182256 powrót

© aleproste.pl v.10 Projekt i realizacja projekt.etvn.pl & aleproste.pl