Apache

Kamil Dedecius k.dedecius na sh.cvut.cz
Úterý Říjen 26 21:50:59 CEST 2004


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

> Tento clanek jsem cetl... Ale neni v nem odpoved na moji otazku. Tyto dva
> popsane zpusoby jsou prece stejne zabezpecene. Zadny rozdil tu nevidim...
> Nebo snad ano?

Vytrhnu ten prvni priklad:

<?php
// define $authorized = true only if user is authenticated
if (authenticated_user()) {
   $authorized = true;
}

if ($authorized) {
   include "/highly/sensitive/data.php";
}

Tim chtel autor rici, ze pokud mate register_global=on a utocnik pouzije url 
typu http://server.com/protected.php?authorised=true, tak jste v pytli, 
protoze NIKDE na zacatku onoho nebezpecneho skriptu si nedeklarujete tu 
promennou jako false (protoze neumite poradne prgat nebo kaslete na zasady 
bezpecneho a kvalitniho kodu).

Mate-li vypnuto register_global, tak se nic nestane, protoze misto 
$authorized=true vam utocnik vyrobi nanejvys $_GET['authorized']=true a to 
vas neohrozi, i kdyz ten kod zustane tak, jak byl. 

Predstavte si napr. amaterske forum, ktere jen testuje, existuje-li $query a 
paklize ano, prozene ten dotaz databazi. Utocnik muze vyrobit neco typu 
http://server.com/index.php?query='nejaky_nebezpecny_sql_dotaz' a jste v 
kelu, protoze jste na zacatku skriptu zapomnel ono $query=''

Doufam, ze jsem to nenapsal moc zmatene.

- -- Kamil 'JP' Dedecius
- ----------------------------------------------------------
PGP public key 0xAD8104EF can be obtained from www.gpg.cz
FPR: D2FD 5ABC 32F0 6B53 875E FF1A 82CB 4B7A AD81 04EF  
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.6 (GNU/Linux)

iD8DBQFBfqqngstLeq2BBO8RAqxQAJ9jXApi5KpArhc0Bo1qcPLsqbUK3gCcCqEg
P5fIE0CTAGqhzPXTuK00VZw=
=07y0
-----END PGP SIGNATURE-----


Další informace o konferenci Linux