CyfrifiaduronMeddalwedd

PHP newidyn byd-eang yn y swyddogaeth. Gwnewch newidyn byd-eang yn PHP

I greu safle llawn, sydd wedi functionality eang angen i chi wybod llawer. Ond beth all ei wneud yn wirioneddol unigryw - mae'n PHP. Nid oedd y newidyn byd-eang yn yr iaith raglennu yn cael ei ddefnyddio yn aml iawn, ond weithiau i wybod sut mae'n gweithio, weithiau mae'n angenrheidiol. Dyna astudiaeth o beth ydyw a sut mae'n gweithio, rydym yn mynd i'w wneud yn yr erthygl hon.

cwmpas

Felly ffoniwch y cyd-destun y mae'r amrywiol ac yn benderfynol. Yn y rhan fwyaf o achosion, maent wedi dim ond un cwmpas. Pan PHP newidynnau byd-eang llwytho oddi ffeiliau eraill, yna gall fod yn gynhwysol (cynnwys) ac roedd angen (angen).

Yn ddiofyn, maent yn cael eu cyfyngu i gwmpas swyddogaeth leol. A sut i wneud amrywiol ffeiliau a welwyd yn ei ffiniau, a allai defnyddio mwy a? I'r perwyl hwn, ac yn cael ei ddarparu yn y newidynnau byd-eang PHP.

Mae'r gair allweddol "byd-eang"

A dyma yw sut i ddatgan newidyn byd-eang i PHP? Wrth gyflawni'r nod hwn yn ein helpu y gair "byd-eang". Mae angen gosod o flaen y newidyn yr ydych am ei wneud byd-eang (narimer, byd-eang «The Amrywiol").

Ar ôl y gwaith o arwydd o'r fath ar waith, bydd y data yn gallu gweithio gydag unrhyw ffeil. Os rhywle mae cyfeiriadau at newidyn hwn, bydd y rhaglen bob amser yn talu sylw ar y fersiwn byd-eang.

Pam iaith mor rhyfedd? Mae'r ffaith bod ar yr un pryd mae'n bosibl y bydd fersiynau lleol. Ond byddant ar gael yn unig ar gyfer rhai ffeiliau lle cyhoeddi. Ac ar gyfer yr holl gweddill yn gweithredu newidynnau byd-eang ddosbarth PHP. Felly, mae'n rhaid i chi fod yn ofalus. Ac nad oedd unrhyw amheuaeth, dyma enghraifft o'r hyn y maent yn edrych fel: a byd-eang.

Oherwydd os bydd un ffeil yn cael mynediad at nifer o newidynnau, bydd yn achosi iddynt wrthdaro. Ond ni allwn ddweud yn sicr - lleol neu fyd-eang amrywiol yn cael ei ddarllen neu'n methu yn gyfan gwbl. Felly, os yw i gofrestru mewn swyddogaeth, dylai fod dim problem. Ond mae'r defnydd o amrywiol ar gyfer ei ffiniau i fod yn broblem. Felly, mae strwythur y broses o ddrafftio'r cod sy'n angenrheidiol i fonitro'n agos ac yn gwneud yn siŵr bod unrhyw le yno hyd yn oed yn rhagofyniad i'r gwrthdaro dywedodd codi.

ymgorfforiad arall o'r recordiad

A yw'n bosibl yn PHP i greu newidyn byd-eang mewn ffordd arall? Ie, dim hyd yn oed un. Yn gyntaf, gadewch i ni ystyried y $ newidynnau. Mae hwn yn arae cysylltiadol. Yr allwedd i hynny - yw'r enw. Gan fod y gwerth y cynnwys gweithredu fel newidyn byd-eang. Dylid nodi bod yr amrywiaeth ar ôl y cyhoeddiad yn bodoli mewn unrhyw cwmpas. Mae hyn yn rhoi rheswm i gredu ei fod yn superglobal. Mae'n edrych fel: $ newidynnau [ 'amrywiol'].

Rhagosodol / superglobals

Ym mhob iaith raglennu mae rhai enwau sy'n cael eu siartredig ar gyfer rhai o'i swyddogaethau. Felly, er mwyn creu yn PHP newidynnau byd-eang o'r un enw ni fydd yn gweithio.

Mae hyn yn iaith raglennu ei nodweddion ei hun. Felly, mae'n bwysig nad yw'r newidynnau predefined yma yn gosod "super", hynny yw, nid ydynt ar gael ym mhob lleoliad. Sut alla i drwsio? I newidynnau Rhagosodol ar gael ar ryw ardal leol, rhaid iddo gael ei ddatgan fel a ganlyn :. Amrywiol «Global" Mae'n ymddangos i fod yr un fath ag o'r blaen dweud, dde? Mae'n wir, ond nid yn eithaf. Gadewch i ni edrych ar eisoes yn "ymladd" enghraifft:

  • byd-eang $ HTTP_POST_VARS;
  • adleisio $ HTTP_POST_VARS [ 'enw'].

Rydych yn teimlo y gwahaniaeth rhyngddynt? Noder nad yw o reidrwydd yn rhaid i gael ei ddefnyddio o fewn y swyddogaeth mewn newidynnau byd-eang PHP. Gall hyd yn oed yn cael ei roi mewn ffeil sy'n cael ei gynnwys ynddo.

Cysylltiadau a diogelwch

Fel y gwelwch, yn PHP yn creu nid newidyn byd-eang yn broblem. Ond a oes unrhyw gysylltiadau berthynas arbennig? Oes, efallai y bydd ymddygiad annisgwyl wrth ddefnyddio byd-eang. Ond cyn hynny, ychydig o backstory.

Yn y fersiwn 4.2.0 y gyfarwyddeb gan register_globals ddiofyn newid o ar-wladwriaeth i ffwrdd. Ar gyfer y rhan fwyaf o ddefnyddwyr, nid yw hyn yn bwysig iawn, ond yn ofer. Wedi'r cyfan, mae'n effeithio'n uniongyrchol ar ddiogelwch y cynnyrch a ddatblygwyd. Os oes angen i wneud nad oedd y newidyn byd-eang, PHP-gyfarwyddeb ar y paramedr yn cael ei effeithio yn uniongyrchol. Fodd bynnag, gall defnydd anghywir eisoes yn creu cynseiliau diogelwch.

Felly os register_globals ei droi ymlaen, cyn gweithredu i roi'r cod ysgrifenedig ymgychwyn y gwahanol newidynnau sydd eu hangen, er enghraifft, i anfon HTML-ffurflenni. Felly, penderfynwyd i droi 'i off.

Pam fod y cyflwr o gyfarwyddeb hon yn newidyn byd-eang php raddau helaeth? Y ffaith yw bod pan fydd cyflwr y datblygwyr nid ydynt bob amser gyda sicrwydd y gallai eu hunain yn ateb y cwestiwn o ble y daeth. Ar y naill law, mae'n haws i ysgrifennu cod. Ond ar y llaw arall - mae'n risg diogelwch. Felly, er mwyn osgoi gwallau, yn ogystal â data cymysgu a gyfarwyddeb wedi ei analluogi.

Nawr, gadewch i ni edrych nid / cod diogel, yn ogystal â sut i ganfod achosion lle y cyhoeddiad y newidyn PHP byd-eang yn dod gyda ymdrechion i ymyrryd â data. Mae hyn yn angenrheidiol er mwyn creu nid yn unig yn hardd, ond hefyd yn safleoedd nad ydynt yn agenna y person cyntaf sydd ar gael gweithio'n raddol.

cod maleisus

Gadewch i ni yn gosod y newidyn yn wir ar gyfer y rhai sydd wedi cael eu hawdurdodi:

os (authenticate_user ()) {
$ Awdurdodi = wir;
}

os ($ awdurdodi) {
cynnwys "/highly/sensitive/data.php";
}

Yn y wladwriaeth, gall y newidyn yn cael ei osod yn awtomatig. O ystyried y gall y data yn syml yn cael ei ddisodli, ac nid y ffynhonnell eu tarddiad wedi ei osod, yna gall unrhyw un pasio prawf o'r fath ac esgus bod yn rhywun arall. Os dymunir, gall yr ymosodwr (neu dim ond person chwilfrydig, ond dibrofiad) gael ei amharu, ein rhesymeg.

Os byddwn yn newid y gwerth y gyfarwyddeb, bydd y cod hwn yn gweithio yn iawn, wrth i ni ei angen. Ond initialization o newidynnau nid yn unig dôn da yn y rhaglenni, ond hefyd yn rhoi gwarant penodol o sefydlogrwydd y sgript ni.

Fersiwn Dibynadwy o'r cod

gallwch droi i ffwrdd neu gyfarwyddebau gweithio, neu'n rhagnodi cod fwy cymhleth i gyflawni'r nod hwn. Er enghraifft, fel hyn:

os (ISSET ($ _ SESIWN [ 'enw defnyddiwr'])) {

echo "Helo {$ _ SESIWN [ 'enw defnyddiwr']} ";

} {Arall

echo "Helo Guest
";
adleisio "defnyddiwr Croeso!";

}

Gwnewch amnewid yn yr achos hwn, bydd yn anodd. Ond mae dal - yn bosibl. I wneud hyn, rhaid i chi gymryd gofal bod yr offer ymateb cyflym yn cael eu darparu. Os ydych am gynnwys newidynnau byd-eang yn PHP, gallwch ddefnyddio'r offer canlynol: os ydym yn gwybod beth yr amrediad yw gwerth a gafwyd, mae'n bosib cofrestru sgript i wirio hyn gyda gêm. Wrth gwrs, nid yw ychwaith yn gwarantu amddiffyniad llawn yn erbyn gwerthoedd amnewid. Ond dyna ormod opsiynau cymhlethu sylweddol.

Darganfyddiadau ymdrechion i ffugio

Gadewch i ni weld sut yr ydych yn deall ysgrifenedig yn gynharach. Yn PHP, bydd angen i newidynnau byd-eang yn y swyddogaeth a fydd yn cael ei roi isod i chi ddatgan eich hun. Gallwn ddweud bod hyn yn fath o waith cartref ar cymathu o'r pwnc wers. Dyma yw'r cod:

os (ISSET ($ _ [ 'C_COOKIE']) cwci) {
} Elseif (ISSET ($ _ GET [ 'C_COOKIE']) || ISSET ($ _ POST [ 'C_COOKIE'])) {

bost ( "administrarot@example.com", "Sylw, y sgript cofnodwyd ymdrech i fyrgleriaeth a ymyrryd â data", $ _SERVER [ 'REMOTE_ADDR']);
adleisio "Roedd diogelwch sydd wedi torri neu geisio gwneud hynny hysbysu'r Gweinyddwr.";
allanfa;

} {Arall
}
?>

Nawr esboniad iddynt. Yn rhannol C_COOKIE yn dod atom o ffynhonnell ddibynadwy. Er mwyn bodloni yn llawn yn ôl y canlyniad disgwyliedig, rydym yn gwirio ei werth ac yn rhoi gwybod i'r gweinyddwr mewn achos o broblemau. Os na fydd yn dod, yna nid a oedd angen unrhyw gamau i'w gwneud. Mae'n rhaid i chi ddeall bod yn syml analluogi register_globals nad gyfarwyddeb yn gwneud eich cod yn ddiogel. Felly, mae unrhyw newidyn sy'n derbyn sgript gan y defnyddiwr, dylid eu gwirio ar gyfer y gwerth disgwyliedig.

casgliad

Yma, yn gyffredinol, ac mae popeth sydd angen i chi ei wybod am y newidynnau byd-eang er mwyn eu defnyddio yn llwyddiannus ac yn ddiogel yn eu gwaith. Wrth gwrs, i ddweud bod gwarant llawn na fydd neb yn defnyddio nid yn eu gallu - ymosodwyr yn gwella eu dulliau a sgiliau yn gyson. Felly, mae'n ddymunol i gyfyngu ar y defnydd mwyaf posibl o newidynnau byd-eang yn y cod. Yn ffodus, gall y strwythur a dyluniad nodweddion y iaith raglennu gyrraedd y nod hwn. Pob lwc!

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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