Kā zināms Location barā ierakstītais pieprasījums ir GET.
Pieņemsim mums ir HTML fails html.html ar šādu saturu:
<form method="post" action="slepeni.php" name="auth">
<input name="parole" type="password" />
<br />
<input name="ok" value="OK" type="submit" />
</form>
Tātad, no html.html tiek postēta parole input lauka vērtība uz failu slepeni.php
Talāk.
Ladmini un citi lamnetisti lieto php.ini ar noziedzīgo uzstādījumu:
register_globals = On
Protams, rakstot tik pat `labu` globals=on slepeni.php skriptu:
<?php
if($parole=='admin'){
echo'forši';
}
?>
Tagad skatamies.
Pieprasījums GET: /slepeni.php?parole=admin
forši
Formas post jēga zūd. Faktiski vispār formas jēga zūd. Forma kļūst par butaforiju.
Varam pamainot ?parole= uzminēt paroles pa taisno, varam pievienot to meklētājos, varam meklētājiem `likt` uzminēt paroles un tamlīdzīgi.
Talāk.
Vismaz par 50% drošāks php.ini uzstādījums:
register_globals = Off
Līkais php globals=on skripts nestrādā:
/slepeni.php?parole=admin
Notice: Undefined variable: parole in /slepeni.php on line 2
Brīdinājums + nekāds forši nesanāk.
Un tā tam būs būt ar tādiem līkiem php skriptiem.
Arī meklētāji neņem tādus.
Talāk.
Atnāk normals nelamnetists un uzraksta sakarīgāku php skriptu:
<?php
if(isset($_POST['parole'])){
if($_POST['parole']=='admin'){
echo'forši';
}
}
?>
Pieprasījums GET: /slepeni.php?parole=admin
rezultāts nulle. Nekāds.
Vienīgā iespēja ir html.html formā ierakstīt paroli un POST akceptēt vismaz ar ENTER.
Protams, ka pastāv dažādas iespējas kā attālināti var šo POST simulēt, bet tas jau vairs nav tik vienkārši.
Vismaz +50% register_globals = Off labā.
© 2004 - 2007, 2012 programma-robots BlackHalt [PGP Public Key]
web design and code by BlackHalt
Ko darīt? - Interneto | Svilini Karsto Dzelzs Laika Termināli | Pieslēdzies internetam