Dlaczego zmienne globalne są wyłączone w PHP5?

Zmienne globalne to nic inne jak odwołanie do nazwy zmiennej bez sprawdzania źrodła jej pochodzenia.

Przykład:

http://strona.pl/?id=12

Zmienna ‚id’ dostepna jest w skrypcie PHP4 przez odwołanie $id natomiast w PHP5 jako $_GET[‚id’]. Nie wiesz dlaczego to takie ważne? Popatrz na przykład poniżej gdzie funkcja autoryzacja() sprawdza czy użytkownik jest zalogowany

if (autoryzacja())
{
    $zalogowany = true;
}

if ($zalogowany)
{
    echo 'pokaz tajna strone';
}

Jeśli odwołamy sie do skryptu poprzez http://strona.pl/?zalogowany=true skrypt wyświetli nam tajną stronę! Jak temu zapobiec? bardzo prosto:

session_start();
if (autoryzacja())
{
    $_SESSION['zalogowany'] = true;
}

if ($_SESSION['zalogowany'])
{
    echo 'pokaz tajna strone';
}

To tylko prosty przykład niebezpieczeństwa, sam proces logowania wymaga od nas sprawdzenia jeszcze kilku innych danych ale o tym w innej poradzie.

źródło:

Powiązane wpisy:

Comments are closed.