KọmputaSoftware

PHP agbaye ayípadà ninu awọn iṣẹ. Ṣe a agbaye ayípadà ni PHP

Lati ṣẹda kan ni kikun ojula, eyi ti o ni ọrọ iṣẹ ti o nilo lati mọ kan pupo. Ṣugbọn ohun ti o le ṣe e iwongba ti oto - o jẹ PHP. Awọn agbaye ayípadà ninu awọn siseto ede ti wa ni ko lo gan igba, sugbon ma lati mo bi o ti ṣiṣẹ, ma o jẹ pataki. Ti o ni iwadi ti awọn ohun ti o jẹ ati bi o ti ṣiṣẹ, a ti wa ni lilọ lati se ni yi article.

dopin

Nítorí náà, pe awọn ti o tọ ninu eyi ti awọn ayípadà ki o si pinnu. Ni ọpọlọpọ igba, won ni nikan kan dopin. Nigba ti PHP agbaye oniyipada o rù lati miiran awọn faili, ki o si le jẹ jumo (ni) ati ki o beere (beere).

Nipa aiyipada, ti won ti wa ni opin si awọn agbegbe iṣẹ dopin. Ati bi lati ṣe ayípadà ri awọn faili ninu awọn oniwe-aala, eyi ti o le siwaju ati siwaju lo? Lati yi opin, ki o si ti pese ninu awọn PHP agbaye oniyipada.

Awọn Koko "agbaye"

Ati ki o nibi ni bi o si sọ a agbaye ayípadà to PHP? Ni iyọrisi yi ìlépa yoo ran wa ọrọ "agbaye". O jẹ pataki lati gbe ni iwaju ti awọn ayípadà ti o fẹ lati ṣe kan agbaye (narimer agbaye «Awọn ayípadà").

Lẹhin awọn imuse ti iru ohun itọkasi, awọn data yoo ni anfani lati ṣiṣẹ pẹlu eyikeyi faili. Ti o ba ti ibikan nibẹ ni o wa jo si yi ayípadà, awọn eto yoo ma san ifojusi lori awọn agbaye ti ikede.

Idi ti iru kan ajeji ede? Awọn o daju wipe ni akoko kanna nibẹ ni o le wa agbegbe awọn ẹya. Sugbon ti won yoo wa ti iyasọtọ fun awon faili ibi ti kede. Ati fun gbogbo awọn iyokù yoo sise agbaye oniyipada PHP kilasi. Nitorina o gbọdọ jẹ ṣọra. Ati awọn ti o wà nibẹ ko si iyemeji, nibi ni ohun ti awọn apẹẹrẹ ohun ti won wo bi: agbaye a.

Nitori ti o ba kan faili yoo ni iwọle si awọn nọmba kan ti àwọn ayípadà, o yoo mu wọn rogbodiyan. Sugbon a ko le sọ fun awọn daju - agbegbe tabi agbaye ayípadà wa ni ka tabi patapata kuna. Nítorí, ti o ba jẹ lati forukọsilẹ ninu iṣẹ kan, o yẹ ki o jẹ ti ko si isoro. Ṣugbọn awọn lilo ti a ayípadà fun awọn oniwe-aala lati wa ni iṣoro. Nitorina, awọn be ti àkókọ awọn koodu pataki lati ni pẹkipẹki bojuto ati rii daju pe besi ni nibẹ ani a pataki ṣaaju si awọn wi rogbodiyan dide.

Miran ti irisi ti awọn gbigbasilẹ

Ni o ṣee ṣe ni PHP lati ṣẹda kan agbaye ayípadà ni ona miiran? Bẹẹni, ko ani ọkan. First, jẹ ki ká ro awọn $ GLOBALS. Eleyi jẹ ẹya associative orun. Awọn bọtini si o - ni awọn orukọ. Bi iye awọn ti awọn awọn akoonu ti ìgbésẹ bi a agbaye ayípadà. O yẹ ki o wa woye wipe orun lẹhin ti awọn fii wa ni eyikeyi dopin. Eleyi yoo fun idi lati gbagbo o superglobal. O wulẹ bẹ: $ GLOBALS [ 'ayípadà'].

Tẹlẹ / superglobals

Ni gbogbo siseto ede nibẹ ni o wa diẹ ninu awọn orukọ ti o ti wa hihaya fun diẹ ninu awọn ti awọn oniwe-iṣẹ. Nitorina, lati ṣẹda ni PHP agbaye oniyipada ti kanna orukọ yoo ko sise.

Eleyi siseto ede ni o ni awọn oniwe-ara abuda. Bẹ, o ṣe pataki ki awọn tẹlẹ oniyipada nibi ko ba wa ni fifi "Super", ti o ni, won ni o wa ko si ni gbogbo awọn ipo. Bawo ni mo ti le fix o? To tẹlẹ oniyipada je wa ni diẹ ninu awọn agbegbe agbegbe, o gbodo ti ni polongo bi wọnyi :. Global «ayípadà" O dabi lati wa ni awọn kanna bi ṣaaju ki o to sọ, otun? O jẹ otitọ, sugbon ko oyimbo. Jẹ ki a wo ni tẹlẹ "ija" ohun apẹẹrẹ:

  • agbaye $ HTTP_POST_VARS;
  • iwoyi $ HTTP_POST_VARS [ 'orukọ'].

O ba lero awọn iyato laarin wọn? Akiyesi pe ni PHP agbaye oniyipada ko ni dandan ni lati wa ni lo laarin awọn iṣẹ. O le paapaa wa ni gbe ni kan faili ti o ti wa ni to wa ni o.

Ìjápọ ati ailewu

Bi o ti le ri, ni PHP ṣẹda kan agbaye ayípadà ni ko kan isoro. Ṣugbọn jẹ nibẹ eyikeyi pato ojulumo ìjápọ? Bẹẹni, nibẹ ni o le wa airotẹlẹ iwa nigbati lilo agbaye. Sugbon ki o to pe, kekere kan backstory.

Ni version 4.2.0 awọn šẹ nipa aiyipada register_globals yi pada lati lori-ipinle to pa. Fun julọ awọn olumulo, yi ni ko gan pataki, sugbon ni asan. Lẹhin ti gbogbo, o taara yoo ni ipa lori awọn aabo ti awọn idagbasoke ọja. Ti o ba nilo lati ṣe awọn ayípadà agbaye, PHP-šẹ lori yi paramita ni ko taara fowo. Sibẹsibẹ, ti ko tọ lilo le tẹlẹ ṣẹda precedents aabo.

Nitorina ti o ba register_globals wa ni titan, ṣaaju ki awọn ipaniyan ti awọn kọ koodu initialized awọn ti o yatọ oniyipada ti o ti wa ni ti nilo, fun apẹẹrẹ lati fi HTML-pupo. Nitorina, ti o ti pinnu lati fi si pipa.

Idi ni ipinle ti yi šẹ ni PHP agbaye ayípadà lapapo Elo? Awọn o daju ni wipe nigba ti ipinle ti awọn Difelopa se ko nigbagbogbo pẹlu dajudaju le ara wọn dahun awọn ibeere ti ibi ti o ti wá lati. Lori awọn ọkan ọwọ, o jẹ rọrun lati kọ koodu. Sugbon lori awọn miiran - o jẹ kan aabo ewu. Nitorina, lati yago fun awọn aṣiṣe, bi daradara bi data dapọ itoni ti a ti alaabo.

Bayi jẹ ki ká wo ko / aabo koodu, bi daradara bi bi o si ri igba ibi ti awọn fii ti awọn agbaye PHP ayípadà wa ni de pelu igbiyanju ti ni Fifọwọkan data. Eleyi jẹ pataki ni lati le ṣẹda ko nikan lẹwa, sugbon o tun ni imurasilẹ ṣiṣẹ ojula ti o ko kiraki akọkọ wa eniyan.

irira koodu

Jẹ ká ṣeto ti o ayípadà jẹ otitọ fun awon ti o ti a ti fun ni aṣẹ:

ti o ba ti (authenticate_user ()) {
$ Fun laṣẹ = otitọ;
}

ti o ba ti ($ fun laṣẹ) {
ni "/highly/sensitive/data.php";
}

Ni yi ipinle, awọn ayípadà le ti wa ni ṣeto laifọwọyi. Considering wipe data le jiroro ni wa ni rọpo, ati awọn orisun ti won Oti ti a ko ti ṣeto, ki o si ẹnikẹni ti o le ṣe iru a igbeyewo ki o si dibọn lati wa ni ẹnikan. Ti o ba fẹ, awọn attacker (tabi o kan iyanilenu sugbon inexperienced eniyan) le wa ni ti bajẹ, wa kannaa.

Ti a ba yi awọn iye ti awọn šẹ, yi koodu yoo ṣiṣẹ ti tọ, bi a ti beere fun. Ṣugbọn initialization ti àwọn ayípadà jẹ ko nikan kan ti o dara ohun orin ninu awọn siseto, sugbon tun yoo fun wa kan awọn lopolopo ti awọn iduroṣinṣin ti awọn akosile.

Gbẹkẹle version of awọn koodu

o le pa tabi ṣiṣẹ directives, tabi juwe a eka sii koodu lati se aseyori yi ìlépa. Fun apẹẹrẹ, bi yi:

ti o ba ti (isset ($ _ igba [ 'olumulo'])) {

iwoyi "Hello {$ _ igba [ 'olumulo']} ";

} Tu {

iwoyi "Hello Guest
";
iwoyi "Welcome olumulo!";

}

Ṣe a fidipo ninu apere yi, nibẹ ni yio je soro. Sugbon si tun - o ti ṣee. Lati ṣe eyi, o gbọdọ gba itoju ti dekun esi irinṣẹ won ti pese. Ti o ba fẹ lati ni agbaye oniyipada ni PHP, o le lo awọn wọnyi irinṣẹ: bi awa ba mọ ohun ti awọn ibiti o ni iye gba, o jẹ ṣee ṣe lati forukọsilẹ a akosile lati ṣayẹwo yi pẹlu a baramu. Dajudaju, o tun ko ṣe oniduro ni kikun Idaabobo lodi si fidipo iye. Sugbon ti o ni ju Elo awọn aṣayan significantly complicate.

Nwa igbiyanju lati masquerade

Jẹ ká wo bi o mọ kọ sẹyìn. Ni PHP agbaye oniyipada ni iṣẹ ti yoo wa fun ni isalẹ, iwọ yoo nilo lati sọ ara rẹ. A le so pe yi ni a irú ti amurele lori assimilation ti awọn ẹkọ koko. Eyi ni awọn koodu:

ti o ba ti (isset ($ _ kukisi [ 'C_COOKIE'])) {
} Elseif (isset ($ _ Gba [ 'C_COOKIE']) || isset ($ _ Post [ 'C_COOKIE'])) {

mail ( "administrarot@example.com", "ọkan, awọn akosile ti a gba silẹ igbiyanju ni pa ati Fifọwọkan data", $ _SERVER [ 'REMOTE_ADDR']);
iwoyi "Ko si je a bajẹ tabi gbiyanju lati ṣe bẹ iwifunni awọn IT.";
jade;

} Tu {
}
?>

Bayi alaye moomo. Gba C_COOKIE ba de si wa lati kan gbẹkẹle orisun. Lati ni kikun ooto ni ibamu si awọn yẹ esi, a ṣayẹwo awọn oniwe-iye ati leti awọn administrator ni irú ti isoro. Ti o ba ko ni wa, ki o si ko si igbese ati ki o ko nilo lati ṣe. O ni lati ni oye wipe nìkan disabling register_globals šẹ ko ni ṣe koodu rẹ ni aabo. Nitorina, eyikeyi ayípadà ti o gba a akosile lati awọn olumulo, o yẹ ki o wa ni ẹnikeji fun awọn yẹ iye.

ipari

Nibi, ni apapọ, ati ohun gbogbo ti o nilo lati mo nipa awọn agbaye oniyipada to ni ifijišẹ ati ki o lailewu lo wọn ni iṣẹ wọn. Dajudaju, lati so pe o wa ni kan ni kikun lopolopo ti ko si ọkan yoo lo wọn ko le - attackers ti wa ni nigbagbogbo imudarasi won ọna ati ogbon. O ti wa ni Nitorina wuni lati se idinwo awọn ti o pọju lilo ti agbaye oniyipada ni awọn koodu. Da fun, awọn be ati oniru ẹya ara ẹrọ ti yi siseto ede le se aseyori yi ìlépa. Ti o dara orire!

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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