S bezpečnosťou to nebude také horúce ani tu - nemusí to byť fatálna chyba, len je vidno, že je pravdepodobne neošetrený vstup a existuje predpoklad na zraniteľnosť typu SQL injection, keď sa podstčený výraz dostal až k SQL serveru:
[
http://mesta.obce.cz/vyhledat.asp?okres=3303%20OR%20(1/0)&vzhled=ul]
[
http://mesta.obce.cz/vyhledat.asp?okres=1/0]
K register globals:
celé je to o tom, či sú inicializované premenné. Záleží aj aká to je premenná a na čo sa používa. Ak je to nejaká pomocná premená nič vážneho sa nedeje. Samozrejme vždy platí, že inicializovať treba všetko.
Ak by som mal server, kde z rôznych dôvodov musím bežať so zapnutým register globals, rozhodne by som nešahal do kódu a neprerábal všetky premenné ako doporučuje ten návod. Použil by som radšej skript, podobný admin/aext_prom.php, ktorý by sa spúšťal pri každom requeste a zabezpečil by fungovanie aplikácie aj s vypnutým rerister globals ;-) ...a samozrejme následne by som RG na servery vypol. Pri paranoji by sa dalo použiť vynulovanie unset($GLOBALS); a naplnenie z _GET a _POST ... s prípadnou hromadnou kontrolou a filtrom na nebezpečné vstupy.
Celkem upraveno 2×. Poslední úprava pa3k v 26.04.2010 08:48.