கணினிகள்மென்பொருள்

செயல்பாடு உள்ள PHP உலக மாறி. PHP இல் ஒரு உலக மாறி செய்ய

நீங்கள் நிறைய அறிந்து கொள்ள வேண்டும், பரவலான செயல்பாடு ஒரு முழு தளம், உருவாக்க. ஆனால் என்ன அவரை மிகவும் தனிப்பட்ட செய்ய முடியும் - அது PHP உள்ளது. நிரலாக்க மொழி உலக மாறி மிகவும் பெரும்பாலும் பயன்படுவதில்லை, ஆனால் சில நேரங்களில் அது எவ்வாறு தெரிந்து கொள்ள, சில நேரங்களில் அது அவசியம். அந்த இது என்ன, அது எவ்வாறு செயல்படுகிறது, நாம் இந்த கட்டுரையில் செய்ய போகிறீர்கள் பற்றிய கல்வியாகும்.

நோக்கம்

எனவே இதில் மாறி மற்றும் தீர்மானிக்கப்படுகிறது சூழல் அழைக்க. பெரும்பாலான சந்தர்ப்பங்களில், அவர்கள் ஒரே ஒரு நோக்கம் வேண்டும். (தேவை) PHP உலக மாறிகள் பிற கோப்புகளை இருந்து ஏற்றப்படும் போது, அது உள்ளடக்கிய (அடங்கும்) மற்றும் தேவையான இருக்கலாம்.

இயல்பாக, அவர்கள் உள்ளூர் செயல்பாடு நோக்கம் வரையே இருக்க வேண்டும். எப்படி, அதன் எல்லைகளை மாறி பார்த்த கோப்புகளை செய்ய எந்த மேலும் பயன்படுத்த முடியும்? இதன் முடிவில், மற்றும் PHP உலக மாறிகள் வழங்கப்படுகிறது.

முக்கிய "உலக"

இங்கு PHP ஆகியவற்றுக்கான ஒரு உலகளாவிய மாறி அறிவிக்க எப்படி இருக்கிறது? இந்த இலக்கை அடைவதில் "உலக" எங்களுக்கு சொல் உதவும். அதை நீங்கள் ஒரு உலக (narimer உலக «மாறி") செய்ய வேண்டும் என்று மாறி முன் வைக்க வேண்டும்.

அத்தகைய அறிகுறி செயல்படுத்த பின்னர், தரவு எந்த கோப்பு வேலை முடியும். எங்காவது இந்த மாறி குறிப்புகள் உள்ளன என்றால், நிரல் எப்போதும் உலக பதிப்பு கவனம் செலுத்த வேண்டும்.

ஏன் வருகிறது ஒரு விசித்திரமான மொழி? உண்மையில் அதே நேரத்தில் உள்ளூர் பதிப்புகள் இருக்கலாம் என்று. ஆனால் அவர்கள் எங்கே அறிவித்தது அந்த கோப்புகளை பிரத்தியேகமாக கிடைக்கும். மற்ற அனைத்தும் தாமாக உலக மாறிகள் PHP வர்க்கம் செயல்படும். எனவே நீங்கள் கவனமாக இருக்க வேண்டும். உலக ஒரு: எந்த சந்தேகமும் கிடையாது என, இங்கே அவர்கள் அப்படி என்ன இருக்கிறது ஒரு எடுத்துக்காட்டு.

ஒரு கோப்பு மாறுபாடுகளின் எண்ணிக்கையின் அணுக வேண்டும் என்றால் ஏனெனில், அது அவர்களுக்கு முரண்படாத காரணமாக அமைகிறது. உள்ளூர் அல்லது உலக மாறி முடியவில்லை முற்றிலும் படிக்க அல்லது - நிச்சயமாக ஆனால் நாம் சொல்ல முடியாது. எனவே, அது ஒரு செயல்பாடு பதிவு செய்ய இருந்தால், அது எந்த பிரச்சனையும் இருக்க வேண்டும். ஆனால் அதன் எல்லைகளை ஒரு மாறி பயன்படுத்தி சிக்கல் இருக்க வேண்டும். எனவே, நெருக்கமாக கண்காணித்து உறுதி செய்ய தேவையான நெறிமுறையை கட்டமைப்பை எங்கும் இல்லை என்று கூட கூறினார் மோதல், இதைச் செய்ய வேண்டும் எழுந்தது.

பதிவு மற்றொரு வடிவமாகும்

அது PHP இல் மற்றொரு வழியில் ஒரு உலக மாறி உருவாக்க முடியுமா? ஆமாம், இல்லை இருந்தாலும் கூட. முதல், $ globals கவனிக்கட்டும். இது ஒரு துணை வரிசை உள்ளது. அது முக்கிய - பெயர். உள்ளடக்கங்களை மதிப்பு ஒரு உலக மாறி செயல்படுகிறது என. அது அறிவிப்பு பிறகு வரிசை எந்த நோக்கம் உள்ளது என்பது குறிப்பிடத்தக்கது. இந்த superglobal அது நம்புவதற்கு காரணம் கொடுக்கிறது. இது மிகவும் தெரிகிறது: $ globals [ 'மாறி'].

முன் /, superglobals

ஒவ்வொரு புரோகிராமிங் மொழி அதன் செயல்பாடுகளை சில பட்டயம் என்று சில பெயர்கள் உள்ளன. எனவே, அதே பெயரில் இயங்காது PHP இன் உலக மாறிகள் உள்ள உருவாக்க.

இந்த நிரலாக்க மொழி அதன் சொந்த பண்புகள் உண்டு. எனவே, அது இங்கே முன் மாறிகள், "சூப்பர்" நிறுவும் என்பதை அதாவது, அவை அனைத்தும் இடங்களில் கிடைக்கின்றன முக்கியம். எப்படி நான் அதை சரிசெய்ய முடியும்? முன் மாறிகள் சில உள்ளூர் பகுதியில் கிடைக்கும் இருந்தது, அது பின்வருமாறு :. குளோபல் «மாறி அறிவித்தார் வேண்டும்" அது சரி, இரண்டும் ஒன்றே எனக் முன் கூறப்பட்டிருப்பதன்படி தெரிகிறது? அது உண்மை தான், ஆனால் மிகவும். எங்களுக்கு ஏற்கனவே ஒரு உதாரணம் "போராடும்" பார்க்கிறேன்:

  • உலக $ HTTP_POST_VARS;
  • $ HTTP_POST_VARS [ 'பெயர்'] எதிரொலி.

நீங்கள் அவர்களுக்கு இடையே வேறுபாடு உணர? PHP உலக மாறிகள் அவசியம் செயல்பாடு பயன்படுத்தப்பட்ட வேண்டும் இல்லை என்பதை நினைவில் கொள்க. அது கூட அது சேர்க்கப்பட்டுள்ளது என்று ஒரு கோப்பில் வைக்கப்படும்.

இணைப்புகள் மற்றும் பாதுகாப்பு

நீங்கள் பார்க்க முடியும் என, PHP இல் உருவாக்க ஒரு உலக மாறி ஒரு பிரச்சனையே அல்ல. ஆனால் எந்த குறிப்பிட்ட உறவினர் இணைப்புகள் உள்ளது? உலக பயன்படுத்தும் போது ஆமாம், அங்கு எதிர்பாராத நடத்தை இருக்கலாம். ஆனால் அதற்கு முன், ஒரு சிறிய பின்புலத்துடன்.

பதிப்பு 4.2.0 இயல்புநிலை register_globals மூலம் உத்தரவு மீது மாநில இருந்து மாற்றப்பட்டது. பெரும்பாலான பயனர்கள், இந்த மிக முக்கியமான, ஆனால் வீண் போகாது. அனைத்து பிறகு, அது நேரடியாக உருவாக்கத் தயாரிப்பு பாதுகாப்பு பாதிக்கிறது. நீங்கள் செய்ய வேண்டும் என்றால் மாறி உலக, இந்த அளவுரு மீது PHP-உத்தரவு நேரடியாக பாதிக்கப்படவில்லை. எனினும், தவறான பயன்பாடு ஏற்கனவே முன்னோடிகள் பாதுகாப்பு உருவாக்க முடியும்.

எனவே register_globals எழுதப்பட்ட குறியீடு நிறைவேற்றுவது, HTML வடிவங்களாகவும் அனுப்ப உதாரணமாக, தேவை என்று வெவ்வேறு மாறிகள் துவக்கப்படும் முன் இயக்கத்தில் இருக்கும்போது கூட. எனவே, அது அணைக்க முடிவு செய்யப்பட்டது.

ஏன் PHP உலக மாறி கொண்டு இந்த பணிப்புரையை மாநிலத்தில் இருப்பதுதான் காரணம் என்ன? உண்மையில் டெவலப்பர்கள் மாநிலத்தில் நிச்சயமாக எப்போதும் செய்யும்போது தங்களை அது எங்கிருந்து வந்தது என்ற கேள்விக்கு பதில் முடியும் என்று. ஒரு புறம், அது குறியீடு எழுத எளிதாகும். ஆனால் மற்ற - அது ஒரு பாதுகாப்பு ஆபத்து இருக்கிறது. எனவே, கலந்து பிழைகள், அத்துடன் தரவு தவிர்க்க மற்றும் உத்தரவு முடக்கப்பட்டுள்ளது.

இப்போது இல்லை / பாதுகாப்பான குறியீடு, அதே எப்படி போன்ற தரவு சேதப்படுத்திய முயற்சிகள் மூலம் அங்கு உலக PHP மாறி அறிவிக்கப்பட்டதுடன் சேர்ந்து நோயாளிகளைக் கண்டறிவதில் பார்போம். இந்த மட்டும் அழகான உருவாக்கும் வகையில் அவசியம், ஆனால் சீராக வேலை முதல் கிடைக்க நபர் விரிசல் விடா தளங்கள்.

தீங்கிழைக்கும் குறியீடு

என்று மாறி அங்கீகரிக்கப்படவில்லை அந்த உண்மை அமைக்க நாம்:

என்றால் (authenticate_user ()) {
$ அங்கீகரி true;
}

என்றால் ($ அங்கீகரிக்க) {
"/highly/sensitive/data.php" அடங்கும்;
}

இந்த நிலையில், மாறி தானாக அமைக்க முடியும். தரவு வெறுமனே பதிலாக முடியும், அவர்களது மூலத்தைக் மூல அமைக்கப்படவில்லை கருத்தில் கொண்டு, பின்னர் யாரையும் போன்ற ஒரு சோதனை கடந்து வேறு யாராவது இருக்கும் நடிக்க முடியாது. விரும்பிய என்றால், தாக்குதல் (அல்லது ஆர்வம் ஆனால் அனுபவமற்ற நபர்) பாதிக்கப்படுகின்றன இருக்கலாம், எங்கள் தர்க்கம்.

நாங்கள் உத்தரவு மதிப்பு மாற்றினால், இந்தக் குறியீடு நாங்கள் ஏற்றாற் போல், சரியாக வேலை செய்யும். ஆனால் மாறிகள் தொடக்கத்தின் நிரலாக்க ஒரு நல்ல தொனி மட்டுமே, ஆனால் எங்களுக்கு ஸ்கிரிப்ட் ஸ்திரத்தன்மை ஒரு குறிப்பிட்ட உத்தரவாதம் கொடுக்கிறது.

குறியீட்டின் நம்பகமான பதிப்பு

நீங்கள் அணைக்க முடியும் அல்லது கட்டளைகளை வேலை, அல்லது இந்த இலக்கை அடைய மிகவும் சிக்கலான குறியீடு பரிந்துரைப்பார். உதாரணமாக, இந்த மாதிரி:

என்றால் (isset ($ _ அமர்வு [ 'பயனர்பெயர்'])) {

எதிரொலி "ஹலோ <ஆ> {$ _ அமர்வு [ 'பயனர்பெயர்']} " ஐக்;

} வேறு {

எதிரொலி "ஹலோ <ஆ> விருந்தினர்
";
"வெல்கம் பயனர்!" எதிரொலி;

}

இந்த வழக்கில் ஒரு பதிலீட்டு செய்ய கடினமாக இருக்கும். ஆனால் இன்னும் - சாத்தியமான. இதை செய்ய, நீங்கள் விரைவான பதில் கருவிகள் வழங்கப்படும் என்று பார்த்துக்கொள்ள வேண்டும். நீங்கள் PHP இல் உலக மாறிகள் சேர்க்க விரும்பினால், நீங்கள் பின்வரும் கருவிகளைப் பயன்படுத்தலாம்: நாங்கள் வரம்பில் பெறப்படும் மதிப்பும் என்ன தெரிந்தால், அது ஒரு போட்டியில் இந்த சரிபார்க்க ஒரு ஸ்கிரிப்ட் பதிவு செய்ய முடியும். நிச்சயமாக, இது பதிலீட்டு மதிப்புகள் எதிராக முழு பாதுகாப்பு உத்தரவாதம் தராது. ஆனால் அதிகப்படியான விருப்பங்கள் கணிசமாக சிக்கலாக்கும் தான்.

பொய்த்தோற்றமளிக்கின்றன முயற்சிகள் கண்டுபிடிக்கிறது

நீங்கள் முந்தைய எழுதப்பட்ட என்பதைப் புரிந்துகொள்ளாமல் எப்படி என்று பார்ப்போம். கீழே வழங்கப்படும் என்று செயல்பாடு உலக மாறிகள் PHP, நீங்கள் உங்களை அறிவிக்க வேண்டும். நாம் இந்த பாடம் தலைப்பின் சீரழிவு வைத்து வீட்டுப்பாடம் ஒரு வகையான என்று சொல்ல முடியும். இங்கே குறியீடு ஆகும்:

என்றால் (isset ($ _ குக்கீ [ 'C_COOKIE'])) {
} Elseif (isset ($ _ GET [ 'C_COOKIE']) || isset $ _ போஸ்ட் [ 'C_COOKIE']) () {

மெயில் ( "administrarot@example.com", "கவனம், ஸ்கிரிப்ட் பதிவு செய்யப்பட்டது கொள்ளை முயற்சி மற்றும் தரவு சேதப்படுத்திய", $ _SERVER [ 'REMOTE_ADDR']);
எதிரொலி "ஒரு உடைந்த பாதுகாப்பு ஏற்பட்டது அல்லது அவ்வாறு செய்ய நிர்வாகி அறிவிக்கப்படும் முயற்சிக்கும்.";
வெளியேறும்;

} வேறு {
}
?>

குறி்த்து விளக்கமளிக்கும் அவ்விடத்திற்கு. ஓரளவுக்கு C_COOKIE ஒரு நம்பகமான மூலத்தில் இருந்து எங்களுக்கு வரும். எதிர்பார்க்கப்பட்ட படி முழுமையாக திருப்தி, நாம் அதன் மதிப்பு சரிபார்த்து பிரச்சினைகள் வழக்கில் நிர்வாகி அறிவிக்குமாறு. அது வரவில்லை என்றால், எந்த நடவடிக்கையும் செய்ய தேவையில்லை. நீங்கள் வெறுமனே முடக்குவதன் register_globals உத்தரவு உங்கள் குறியீடு பாதுகாப்பானது இல்லை என்று புரிந்து கொள்ள வேண்டும். எனவே, பயனர் ஒரு ஸ்க்ரிப்ட் பெறும் எந்த மாறி, எதிர்பார்க்கப்படுகிறது மதிப்பு சரிபார்க்கப்பட வேண்டும்.

முடிவுக்கு

இங்கே, பொதுவாக, எல்லாம் நீங்கள் புவி மாறிகள் வெற்றிகரமாக பாதுகாப்பாக அவர்களுக்கு பயன்படுத்த பற்றி தெரிந்து கொள்ள வேண்டும். தாக்குதல் தொடர்ந்து தங்கள் முறைகள் மற்றும் திறன்கள் மேலும் மேம்பட - நிச்சயமாக, யாரும் அவர்களை இதை தொடர்ந்து பயன்படுத்தலாம் என்று ஒரு முழு உத்தரவாதம் இல்லை என்று சொல்ல. அது குறியீடு உலக மாறிகள் அதிகபட்ச பயன்பாடு குறைக்க எனவே விரும்பத்தக்கதாகும். அதிர்ஷ்டவசமாக, இந்த நிரலாக்க மொழி கட்டமைப்பு மற்றும் வடிவமைப்பு அம்சங்கள் இந்த இலக்கை அடைய முடியும். நல்ல அதிர்ஷ்டம்!

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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