SzámítógépekSzoftver

PHP globális változó a függvény. Készíts egy globális változó a PHP

Ahhoz, hogy hozzon létre egy teljes oldalon, ami széles funkcionalitást, amit tudnia kell egy csomó. De mit tud vele igazán egyedi - ez a PHP. A globális változó a programozási nyelv nem használják túl gyakran, de néha tudni, hogyan működik, néha szükség van. Ez a tanulmány a mi ez, és hogyan működik, mi lesz a teendő ebben a cikkben.

terület

Így hívja a környezet, amelyben a változó és határozott. A legtöbb esetben, hogy csak egy körét. Amikor a PHP globális változók betöltött egyéb fájlokat, akkor lehet, hogy a befogadó (többek között) és a szükséges (kötelező).

Alapértelmezésben ezek a lokális függvény körét. És hogyan lehet változó látható fájlokat a határokat, ami több, és használ? Ebből a célból, és el van látva a PHP globális változókat.

A kulcsszó a „globális”

És itt van, hogyan állapítsa egy globális változót a PHP? E cél eléréséhez segít nekünk a „globális”. Meg kell helyezni előtt a változó, amit szeretnénk, hogy egy globális (narimer globális «változó a").

Miután a végrehajtás egy ilyen jelzés, az adatok lesznek képesek együttműködni bármilyen fájlt. Ha valahol vannak utalások ezt a változót, akkor a program mindig figyelni a globális változata.

Miért olyan furcsa nyelven? Az a tény, hogy ugyanabban az időben lehet a helyi változatok. De lesz kapható kizárólag azokat a fájlokat, ahol bejelentették. És a többi jár a globális változók PHP osztályban. Ezért óvatosnak kell lenni. És ez nem volt kétséges, itt egy példa, hogyan néznek ki: a globális a.

Mert ha egy fájl van, hogy a változók száma, akkor okoz számukra, hogy ütköznek. De nem tudjuk biztosan megmondani, hogy - a helyi vagy globális változó olvasási vagy teljesen leáll. Tehát, ha regisztrálni egy funkciót, akkor nem lehet gond. De a változó használata annak határait, hogy problémás. Ezért a szerkezet kidolgozása a szükséges kódot is szorosan figyelemmel kíséri, és győződjön meg arról, hogy sehol még egy előfeltétele, hogy az említett konfliktus keletkezett.

Egy másik kiviteli alak szerint a felvételi

Lehetséges a PHP, hogy hozzon létre egy globális változót más módon? Igen, még csak nem is egy. Először nézzük meg a $ GLOBALS. Ez egy asszociatív tömb. A legfontosabb, hogy ez - a neve. Mivel az érték a tartalom viselkedik, mint egy globális változót. Meg kell jegyezni, hogy a tömb bejelentését követően minden hatáskörben létezik. Ez ad okot azt hinni, hogy szuperglobális. Úgy néz ki, hogy: $ GLOBALS [ 'változó'].

Előre definiált / szuperglobális

Minden programozási nyelv vannak nevek, amelyeket bérelnek egyes feladatait. Ezért, hogy hozzon létre a PHP globális változók az azonos nevű nem fog működni.

Ez a programozási nyelv megvannak a maga sajátosságai. Tehát fontos, hogy az előre definiált változók itt nem telepíti „szuper”, hogy van, azok nem állnak rendelkezésre az összes helyszínen. Hogyan tudom kijavítani? Ahhoz, hogy az előre definiált változók volt elérhető néhány helyi, meg kell állapítani, az alábbiak szerint :. Global «Variable” Úgy tűnik, hogy ugyanaz, mint korábban azt mondta, nem igaz? Ez igaz, de nem egészen. Nézzük már „harci” egy példa:

  • global $ HTTP_POST_VARS;
  • echo $ HTTP_POST_VARS [ 'name'].

Úgy érzi, a különbség közöttük? Megjegyezzük, hogy a PHP globális változók nem feltétlenül kell használni a funkciót. Meg is lehet helyezni egy fájlt, ami tartalmazza azt.

Linkek és biztonság

Mint látható, a PHP hozzon létre egy globális változó nem jelent problémát. De van-e különösen a relatív linkeket? Igen, lehet, hogy nem várt viselkedést ha a globális. De előtte, egy kis háttértörténet.

A verzió 4.2.0 Az irányelv alapértelmezés register_globals változott az állami kikapcsolása. A legtöbb felhasználó számára ez nem nagyon fontos, de hiába. Végtére is, hogy közvetlenül befolyásolja a biztonságot a kifejlesztett termék. Ha kell, hogy a változó globális, PHP-irányelv ez a paraméter nem érinti közvetlenül. Azonban, a helytelen használat már létre precedens biztonságot.

Tehát, ha a register_globals be van kapcsolva, mielőtt a végrehajtás a megírt kód inicializált a különböző változók, amelyek szükségesek, például, hogy küldjön HTML-formában. Ezért úgy döntöttek, hogy kapcsolja ki.

Miért van az állam ezen irányelv php globális változó köszönheti? A tény az, hogy ha az állam a fejlesztők nem mindig teljes bizonyossággal tudta magát a kérdésre válaszolni, hogy honnan jött. Egyrészt, hogy könnyebb írni a kódot. De a másik - ez biztonsági kockázatot jelent. Ezért, hogy elkerüljük a hibákat, valamint az adatok a keverés és az irányelv le lett tiltva.

Most nézzük meg, nem / biztonsági kódot, valamint hogyan lehet felismerni az esetekben, amikor a bejelentést a globális PHP változó kíséri kísérletek meghamisítása adatokat. Erre azért van szükség annak érdekében, hogy ne csak szép, hanem folyamatosan dolgozik oldalak, amelyek nem törnek az első elérhető személy.

rosszindulatú kód

Nézzük meg, amely változó igaz azokra is, akik engedélyezték:

ha (authenticate_user ()) {
$ Authorize = true;
}

if ($ engedélyezi) {
közé tartoznak "/highly/sensitive/data.php";
}

Ebben az állapotban, a változó automatikusan beállítható. Tekintettel arra, hogy az adatok egyszerűen le kell cserélni, és a forrás származásukat nincs beállítva, akkor bárki át egy ilyen tesztet és úgy tesznek, mintha valaki másnak. Ha szükséges, a támadó (vagy csak kíváncsi, de tapasztalatlan személy) károsodhat, mi a logika.

Ha a változó értéke az irányelv ezt a kódot helyesen fog működni, ahogy szükséges. De inicializálása változók nem csak egy jó hang a műsorban, hanem ad nekünk egy bizonyos stabilitását biztosító garancia a forgatókönyvet.

Megbízható változata a kód

akkor kapcsolja ki, vagy dolgozni irányelveket vagy felírni egy bonyolultabb kódot elérni ezt a célt. Például így:

if (isset ($ _ SESSION [ 'username'])) {

echo "Jó napot {$ _ SESSION [ 'username']} ";

} Else {

echo "Hello Guest
";
echo "Welcome felhasználó!";

}

Készíts egy helyettesítési ebben az esetben nem lesz nehéz. De még mindig - lehetséges. Ehhez meg kell vigyázni, hogy a gyors reagálás eszközöket biztosítani. Ha azt szeretnénk, hogy tartalmazza a globális változók a PHP, akkor használja a következő eszközöket: ha tudjuk, hogy mi ez a tartomány a kapott érték, lehetőség van arra, hogy regisztráljon egy script, hogy ellenőrizze ezt a mérkőzést. Persze, ez is nem garantálja a teljes védelmet a helyettesítési értékeket. De ez túl sok lehetőség jelentősen megnehezítik.

Tartja kísérletek maskara

Lássuk hogyan érti korábban írt. A PHP globális változó a függvény, amely az alábbiakban ismertetünk, akkor meg kell, hogy állapítsa meg magad. Azt lehet mondani, hogy ez egyfajta házi feladatot az asszimiláció a lecke témában. Itt a kód:

if (isset ($ _ COOKIE [ 'C_COOKIE'])) {
} Elseif (isset ($ _ GET [ 'C_COOKIE']) || isset ($ _ POST [ 'C_COOKIE'])) {

mail ( "administrarot@example.com", "Figyelem, a forgatókönyvet rögzítették kísérletet betörés és illetéktelen beavatkozás adatok", $ _SERVER [ 'REMOTE_ADDR']);
echo „Volt egy törött biztonsági vagy erre törekszik közölte a tisztviselő.”;
exit;

} Else {
}
?>

Most magyarázat hozzá. Részben C_COOKIE jön hozzánk egy megbízható forrásból. Ahhoz, hogy teljes mértékben elégedett szerint a várt eredményt, akkor ellenőrizze az értékét, és értesíti a rendszergazda problémák esetén. Ha ez nem jön, akkor nem történik intézkedés, és nem kell tenniük. Meg kell érteni, hogy egyszerűen kikapcsolni register_globals nem teszi a kód biztonságos. Ezért minden változó, amely megkapja a script a felhasználó ellenőrizni kell a várható érték.

következtetés

Itt általában, és mindent meg kell tudni a globális változók, hogy sikeresen és biztonságosan használni őket munkájukban. Persze, hogy azt mondják, hogy van egy teljes garancia arra, hogy senki nem fogja őket használni nem lehet - a támadók folyamatosan fejleszti módszerek és képességek. Ezért kívánatos, hogy korlátozza a maximális globális változók használata a kódban. Szerencsére, a szerkezet és a design jellemzője ennek a programozási nyelv képes elérni ezt a célt. Sok szerencsét!

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 hu.delachieve.com. Theme powered by WordPress.