OrdenagailuakSoftware

PHP aldagai global funtzioa ere. Egin PHP aldagai global bat

erabateko gune bat, eta horrek funtzionalitate zabala dauka asko jakin behar dituzu. Baina zer benetan berezia zion egin daitezke - PHP da. programazio hizkuntzan aldagai global erabiltzen ez oso maiz, baina batzuetan nola funtzionatzen duen jakin, batzuetan beharrezkoa da. Hori zer da eta nola funtzionatzen duen, artikulu honetan egin dugu azterketa da.

esparrua

Beraz deitu testuinguruan bertan aldagai eta zehaztu. Kasu gehienetan, esparrua bakarra izan zuten. Noiz PHP aldagai global beste fitxategiak kargatu, gero, biak barne (besteak beste), eta beharrezkoa izango da (behar).

Berez, bertako funtzioa esparrua dira mugatuta. Eta zenbat aldagai ikusi fitxategiak egiteko bere mugak, eta horrek ezin gehiago eta erabili? Horretarako, hiztegi horiek PHP aldagai global emandako.

hitzarekin "global"

Eta hemen nola PHP aldagai global bat aldarrikatu? Helburu hori lortzeko lagunduko digute hitza "global". Beharrezkoa da global bat (narimer, global «aldakorra The") egin nahi duten aldagai aurrean jartzeko.

esaterako zantzurik ezartzeko ondoren, datuen edozein fitxategi lan egiteko gai izango da. nonbait badaude aldagai honen erreferentziak, programak beti arreta bertsio global orrian.

Zergatik hizkuntza arraro bat, hala nola? Izan ere, aldi berean, ez tokiko bertsioak izan daitezke. Baina eskuragarri izango dute esklusiboki bertan iragarri fitxategi horiek egiteko. Eta gainerako guztientzat aldagai global jardun dira PHP klasean. Beraz, kontuz ibili behar duzu. a global: Eta ez zela zalantzarik ez, hemen zer itxura dute adibide bat.

Zeren baldin fitxategi bat aldagai kopuru bat eskuratu ahal izango dute, gatazkaren horietako eragingo du. Baina ezin dugu esan ziur - lokal edo global aldagai irakurtzen edo guztiz huts egiten. Beraz, ez da funtzio bat erregistratu bada, ez dago arazorik izan behar du. Baina bere mugak aldagai baten erabilera problematikoa izan. Beraz, estuki kontrolatzeko eta ziurtatu beharrezko Kodea idazteko egitura hori inon ez dago, nahiz eta esan gatazka ezinbesteko baldintza zen.

Grabazio horren isla Another

Da PHP beste modu batean aldagai global bat sortzeko aukera ematen du? Bai, ezta bat. Lehenik eta behin, kontuan hartu dezagun $ GLOBALS du. Hau elkartze-array bat da. da gakoa - izena da. edukien balioa aldagai global gisa jokatzen den bezala. Kontuan izan behar da deialdiaren ondoren array edozein esparrua existitzen. Hori dela hura superglobal sinesten ematen. beraz dirudi: $ GLOBALS [ 'aldagai'].

Aurretik zehaztutako / superglobals

programazio hizkuntza guztietan ez direla bere funtzio batzuk pleitatu izen batzuk. Beraz, PHP izen bera ez du funtzionatzen aldagai global batean sortu.

programazio hizkuntza honek bere ezaugarriak ditu. Beraz, garrantzitsua da hori aurrez zehaztutako aldagai hemen ez direla "super" instalatzen, hau da, ez dira guztietan eskuragarri. Nola konpondu dut? To aurrez definitutako aldagai zegoen eskuragarri tokiko batzuk, honela :. orokorrak «aldakorra deklaratu behar da" berdinak izatea aurretik esan bezala dirudi, ezta? Egia da, baina ez nahiko. Ikus dezagun dagoeneko "borrokan" adibide bat gurekin:

  • $ Global HTTP_POST_VARS;
  • oihartzuna $ HTTP_POST_VARS [ 'izena'].

bien arteko aldea sentitzen zara? Kontuan izan PHP aldagai global ere ez du zertan den funtzioaren barruan erabili ahal izateko. daiteke, nahiz eta hori da sartutako fitxategi batean jartzen da.

Loturak eta segurtasuna

Ikusten duzun bezala, PHP sortu aldagai global bat da, ez da arazo bat. Nik ere ez erlatiboa loturak bereziki? Bai, han ustekabeko portaera izan daiteke global erabiliz. Baina hori baino lehen, backstory pixka bat.

4.2.0 bertsioan register_globals lehenetsi zuzentaraua on-egoera batetik off aldatu. erabiltzaile gehienentzat, hau ez da oso garrantzitsua, baina alferrik. Azken finean, zuzenean garatutako produktuaren segurtasuna eragiten die. egiteko behar baduzu aldagai global, PHP-zuzentaraua parametro honetan ez dago zuzenean kaltetutako. Hala ere, erabilera okerrak, dagoeneko sortu ahal aurrekari segurtasuna.

Beraz register_globals bada aktibatuta dago, idatzizko kodearen exekuzioa abiarazi desberdinak aldagai behar diren lehen, adibide HTML-inprimakiak bidaltzeko. Beraz, itzali erabaki zen.

Zergatik da php aldagai global zuzentarau horren egoerari zor askoz? Izan ere, orduan Garatzaileek egoera ez da beti ziurtasunez ezin non zen galderari erantzuteko beraiek. Alde batetik, errazagoa da kodea idazteko. Baina bestetik - segurtasun arriskua dago. Beraz, akatsak, baita datu nahastuz saihesteko eta zuzentaraua desgaitu da.

Orain dezagun ez / code segurua, baita nola kasu non global PHP aldagai iragarkian da saiakerak lagunduta datuak manipula at detektatzeko. Hau ez da beharrezkoa, ez bakarrik ederrak sortzeko, baina baita etengabe lanean ez duten crack lehen eskuragarri Pertsona guneak.

kode kaltegarria

Dezagun aldagai hori izan diren baimendutako dutenentzat egia da:

bada (authenticate_user ()) {
$ Baimena = true;
}

bada ($ authorize) {
besteak beste, "/highly/sensitive/data.php";
}

Egoera honetan, aldagai automatikoki ezar daiteke. datu hori besterik ordezkatu daiteke, eta beren jatorrizko iturburua ez da ezarri kontuan hartuta, gero edonork proba bat gainditu ahal eta asmoa beste norbait izateko. Nahi izanez gero, erasotzaileak (edo pertsona bitxi baina esperientziarik besterik) oztopa daitezke, gure logika.

zuzentaraua balioa aldatzen badugu, kode hau behar bezala funtzionatuko du, beharrezkoa dugu. Baina aldagai hasieratze ez bakarrik programazioan tonu ona da, baina baita gidoia egonkortasuna bermea jakin bat ematen digu.

Seriotasuna kodea bertsio

desaktibatzeko dezakezu edo lan zuzentarau, edo kodea konplexuagoa helburu hori lortzeko prescribe. Adibidez, honelako:

bada (isset ($ _ SAIOA [ 'username'])) {

oihartzun "Kaixo {$ _ SAIOA [ 'username']} ";

} Bestela {

oihartzun "Kaixo Gonbidatu
";
oihartzuna "Ongi etorri erabiltzailearen!";

}

Egin aldaketa bat, kasu honetan, ez da zaila izango da. Baina oraindik - posible. Horretarako, arreta hori azkar erantzun tresnak eskaini zitzaizkien hartu behar duzu. PHP aldagai global sartzea nahi baduzu, honako tresnak erabil daiteke: badakigu zer barrutia lortutako balioa bada, posible da gidoi bat hau hautatu partida bat erregistratu da. Jakina, ere ez du ordezkapen balioen aurkako babes osoa bermatzen. Baina hori gehiegi aukerak nabarmen zaildu.

Bilatzeko den maskarada saiakera

Ikus dezagun nola lehenago idatzia ulertzen dezagun. PHP funtzioa aldagai global azpitik emango zaie, zeure burua aldarrikatu beharko duzu. Esan dezakegu hau dela etxeko lanak moduko bat ikasgaia gaia asimilazioa da. Hemen kodea da:

bada (isset ($ _ COOKIE [ 'C_COOKIE'])) {
} ELSEIF (isset ($ _ GET [ 'C_COOKIE']) || isset ($ _ POST [ 'C_COOKIE'])) {

mail ( "administrarot@example.com", "Arreta, gidoia Lapurreta saiakera eta datuak manipula grabatu zen", $ _Zerbitzaria [ 'REMOTE']);
echo "Ez zegoen hondatutako segurtasuna edo saiatuko hacerlo administratzaileak jakinaraziko.";
irteera;

} Bestela {
}
?>

Orain azalpen hauekiko. Hodeiak C_COOKIE gurekin dator iturri fidagarri bat. Guztiz asetzen du espero emaitza arabera, bere balioa egiaztatu dugu eta administratzaileak jakinaraziko arazoak kasuan. Ez bada etortzen, gero ekintza ez eta ez zuen behar egiteko. besterik gabe desgaituz register_globals zuzentaraua ez du zure kodea segurua dela ulertu behar duzu. Beraz, gidoi bat jasotzen dituen erabiltzaileari edozein aldagai, behar da, aurreikusitako balioa berrikusi.

ondorio

Hemen, orokorrean, eta dena den aldagai global arrakastaz eta segurtasunez erabili horiek beren lanetan buruz jakin behar duzu. erasotzaileen etengabe bere metodo eta trebetasunak hobetzeko - Noski, hori berme osoa dela inor ere ez erabili beharko da esateko. beraz Komenigarria da gehienez aldagai global erabilera kodean mugatzeko. Zorionez, egitura eta diseinua programazio hizkuntza honen ezaugarriak Helburu hori lortzeko daiteke. Zorte ona izan!

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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