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