Miért veszélyes, hogy tartalmazza php register_globals paraméter shublog

Miért veszélyes, hogy tartalmazza php register_globals paraméter shublog
Nem tudom, miért ... nem, miért nem tartalmazza a register_globals tudom, és nem tudom, hogy miért az irodalomban, mint a szabály, róla nem mond semmit.

Általában azt írja, hogy nem ajánlott használni (ha van írási - a szerk.), És minden. Ennek eredményeként, önmagában egy kezdő programozó csak nem vette észre, milyen következményekkel jár a használat register_globals.

Ebben a cikkben azt is meg kell kérni a tartályból mindazoknak, akik ülnek benne, és elmagyarázza, mi az, ami (különösen azok számára, akik a vonaton - a szerk.). Mindegy, nem csoda, hogy néhány házigazdák ez a direktíva. Tehát ...

Arról, hogyan működik

A PHP beállítások (fájl php.ini) olyan register_globals. Jelentése abban a tényben rejlik, hogy ha be van kapcsolva (register_globals = on), az összes változó keresztül átadott GET vagy POST, és automatikusan nyilvántartásba globális. Mit jelent ez?

Például, átadjuk a script index.php GET módszer az érték az oldalon: index.php page = 2 ?. Az átvitt érték tárolása a GET tömb lehet használni szkriptek, mint a $ _GET [ „page”]. Azonban, ha már engedélyezte register_globals, majd át egy értéket a $ oldalt, mely elérhető bármely részén az index.php script jön létre.

Olyan kis összeg, és felül. Amikor a register_globals létre három példányban a változó: a GET tömb, a tömb GLOBALS és egy változó is ($ _GET [ 'page'], $ GLOBALS [ 'page'], $ oldal), míg kikapcsolt register_globals telt érték ez csak a tömb GET ($ _GET [ 'page']). Emlékezett.

Vegyünk egy egyszerű példát, hogy megértsék, hogy mi ragyog (3-5 év - a szerk.). Hogy könnyebb, azt kell mondanom, hogy a $ felhasználónevét és jelszavát $ - Ez változó telt GET / POST módszerrel.

Röviden, amit a szkript:

2. sor kérelmet intéz az adatbázist annak érdekében, hogy a jelenlegi jelszót a kiválasztott felhasználói azonosító.

3. sor: Szerezd meg a jelszót, és hozzárendeli egy változó $ real_pass.

4. sor: Hasonlítsa össze a jelen és a jelszó segítségével, és ha azok megegyeznek, a változó $ check lesz beállítva igaz.

A javasolt forgatókönyv, definíció szerint, a legszentebb a világon, és most megyek, hogy mutassa meg ezeket a lyukakat. Feltétel - register_globals be van kapcsolva.

Tegyük fel, hogy van egy átadása a GET metódust. Ezután az url hasonló lesz a következő:
www.site.com/index.php?login = adminjelszó = QWERTY
Egyértelmű, hogy azonnal létrehoz egy globális változót $ login és jelszó $. És most nézd meg a forgatókönyvet. Ebben van egy változó $ csekket. És mi van, ha átmegy egy URL-t?

Azt hiszem, valaki volt egy kérdés, és ha a cracker tudni változó csekket, ő a felelős mindenért? Ha nincs egy mutatni egy olyan forgatókönyvet, nem valószínű, hogy tudja. Azonban nem minden használ saját scriptek, CMS, stb, és élvezze, amit mi a hálózaton. Ezekben az esetekben a cracker, például lehet felfedezni a CMS kódot, és támadások oldalak létre a segítségével.

Azonban nem minden tárhelyszolgáltatóknak register_globals ki van kapcsolva, akkor is, ha a szkript fog bebörtönözték nincs benne register_globals, a cracker még mindig betörni a script segítségével sebezhetőségét ezt az irányelvet.

Vegyük a példa. Hogy megvédje őt abban az esetben register_globals be van kapcsolva, meg kell, miután a sor if ($ jelszó == $ real_pass) $ check = true; hozzá az alábbi: else $ check = false;. Ebben az esetben is, ha a GET metódus kerül át a változó ellenőrzést egyenlő eggyel, akkor a szkript a helytelen jelszó továbbra is telepíteni $ check = false.

Ja, és én viszont a figyelmet arra a tényre, hogy ha kikapcsolja a register_globals, hogy mi például nem fog működni. És hogy ez a munka, meg kell írni egy forgatókönyvet $ login = $ _POST [ „login”]; $ Password = a $ _POST [ 'password'];

és két fő következtetéseket:

1) Ha a bekapcsolt register_globals képes továbbítani a különböző változók, amelyeknek az értékei révén nyert GET vagy POST nem számítjuk.

2) Nem annyira veszélyes önmagában register_globals, hogyan görbe megírt forgatókönyv.

Azzal a szándékkal, egy sikeres hét
Alexander Shuisky

Kapcsolódó cikkek