Jak Začít?

Máš v počítači zápisky z přednášek
nebo jiné materiály ze školy?

Nahraj je na studentino.cz a získej
4 Kč za každý materiál
a 50 Kč za registraci!




Bezpečnost aplikací

PDF
Stáhnout kompletní materiál zdarma (320.07 kB)

Níže je uveden pouze náhled materiálu. Kliknutím na tlačítko 'Stáhnout soubor' stáhnete kompletní formátovaný materiál ve formátu PDF.

department of computer 

science

and engineering

X36TW1 – Tvorba webových aplikací 1

Přednáška 9 / Strana 6

Register Globals

Nejčastější zdroj bezpečnostních děr v PHP.

Každý vstupní parametr je přístupný jako stejně 

pojmenovaná proměnná:

– script.php?foo=bar  >> $foo = “bar”;
– Neznáme zdroj vstupu (cookie, get, post...)
– Neinicializované proměnné mohou být “podstrčeny” 

uživatelem. 

department of computer 

science

and engineering

X36TW1 – Tvorba webových aplikací 1

Přednáška 9 / Strana 7

Register Globals

if (authenticated_user()) {

$authorized = true;

}
if ($authorized) { 

include '/highly/sensitive/data.php'; 

}

 $authorized není v skriptu inicializováno
 zaslaním GET požadavku 

http://example.com/script.php?authorized=1

získá útočník přístup k citlivým datům

department of computer 

science

and engineering

X36TW1 – Tvorba webových aplikací 1

Přednáška 9 / Strana 8

Řešení pro Register Globals

Vypnout 

register_globals v php.ini.

– V základní konfiguraci od PHP 4.2.0

Programovat s 

error_reporting nastaveným na 

E_ALL.

– umožňuje vidět neinicializované proměnné.

department of computer 

science

and engineering

X36TW1 – Tvorba webových aplikací 1

Přednáška 9 / Strana 9

Další problémy s Register Globals

Dotaz

script.php?var[]=1&var[]=2
vloží do pole  $var dvě hodnoty

Vložení v PHP není možné detekovat.

$var[] = “123”;
foreach ($var as $entry) {

make_admin($entry);

}

department of computer 

science

and engineering

X36TW1 – Tvorba webových aplikací 1

Přednáška 9 / Strana 10

$_REQUEST

Pole $_REQUEST kombinuje vstupy z POST, GET 

a COOKIE

Může dojít ke kolizi hodnot... nepoužívat!

department of computer 

science

and engineering

X36TW1 – Tvorba webových aplikací 1

Přednáška 9 / Strana 11

$_SERVER

Even though the $_SERVER super-global is populated 

based on data supplied by the web-server it should not be 

trusted.

– User may inject data via headers

Témata, do kterých materiál patří