ڪمپيوٽرن, سافٽ ويئر
هن فنڪشن ۾ عالمي variable پي PHP حفاظتي. پي PHP حفاظتي ۾ هڪ عالمي variable ڪر
هڪ مڪمل ويب سائيٽ، جنهن وسيع فعاليت اوھان کي تمام گهڻو معلوم ڪرڻ جي ضرورت اٿس پيدا ڪرڻ. ان پي PHP حفاظتي آهي - پر جيڪي کيس بيشڪ ڌار ڌار ڪري سگهو ٿا. جي پروگرامن ٻوليء ۾ عالمي variable تمام اڪثر ڪڏهن ڪڏهن، معلوم ڪرڻ لاء ان کي ڪيئن ڪم استعمال نه آهي، پر ڪڏهن ڪڏهن اهو ضروري آهي. ته اهو ڇا آهي ۽ ان کي ڪيئن ڪم جي تعليم حاصل آهي، اسان کي هن مضمون ۾ ائين ڪرڻ وارا آهن.
دائري
ڊفالٽ طور، اهي مقامي فعل جي دائري تائين محدود آهن. ۽ ڪيئن ان حدون ۾ variable ڏٺو فائلون، جنهن کان وڌيڪ ۽ استعمال ڪري سگهي ڪرڻ؟ هن آخر تائين، ۽ جي پي PHP حفاظتي عالمي variables ۾ مهيا ڪيل آهي.
هن KEYWORD "عالمي"
اهڙي هڪ سوچن جو عمل ڪرائڻ کان پوء، سنڌ جي ڊيٽا ڪنهن به فائيل سان گڏ ڪم ڪرڻ جي قابل ٿي ويندو. اوڏانهن ڪو هن variable کي حوالن آهي ته، پروگرام هميشه عالمي ورشن تي ڌيان ادا ڪندو.
ڇو ته اهڙي عجيب زبان؟ جڏهن ته حقيقت اها آهي ته هڪ ئي وقت ۾ اتي جي مقامي ورجن ٿي سگهي ٿو. پر اهي خلاصيون جن فائلون جتي اعلان ڪيو لاء موجود هوندي. ۽ سڀ باقي لاء عالمي variables پي PHP حفاظتي طبقي ڪم ڪندو. تنهن ڪري توهان کي خبردار رھڻ گھرجي. عالمي هڪ: ۽ ڪو شڪ نه هو ته، هتي جيڪي وانگر نظر جو هڪ مثال آهي.
ڇاڪاڻ ته هڪ فائيل variables جي هڪ انگ تائين رسائي ڪئي ويندي، ان تڪرار ڪرڻ سبب ٿيندو. پر اسان کي پڪ لاء نه چون ٿا ڪري سگهو ٿا - مقامي يا عالمي variable يا پڙهڻ مڙيوئي ابتڙ آهي. پوء جيڪڏھن ان کي هڪ ئي فعل ۾ داخل آهي، ان جو ڪو به مسئلو هجڻ گهرجي. پر ان جي حدون لاء هڪ variable جي استعمال سگهندي ٿي. تنهن ڪري، ان جي ڪوڊ ويجهي نگراني ۽ پڪ آهي ته ڪو به چيو ته ٽڪراء کي به الزمي آهي بنائڻ لاء ضروري جي مسودن جي جوڙجڪ اٿيو.
رڪارڊنگ جي ٻي تجسيم
ٺاهيو / superglobals
هر پروگرامن جي ٻولي ۾ ڪي نالا ته ان جي ڪم جي ڪجهه لاء chartered آهن اتي موجود آهن. تنهن ڪري، ساڳئي نالي جي پي PHP حفاظتي عالمي variables ۾ پيدا ڪرڻ لاء ڪم نه ڪندو.
هن پروگرامن جي ٻولي پنهنجي پنهنجي ڪنڀار ڪئي. پوء، اهو اهم آهي ته هتي ٺاهيو variables "سپر" جي انسٽاليشن ۾ نه رهيا آهن، ته آهي، نه موجود سڀني جڳهين ۾ آهن. مون کي اها ڪيئن ٺيڪ ڪري سگهو ٿا؟ ٺاهيو variables کي ڪجهه مقامي رهواسين تي موجود هو، ان جي پٺيان قرار ڏنو وڃي هجڻ ضروري آهي :. گلوبل «Variable" اهو اڳ ۾ ٻڌايو، ته جيئن حق جي ساڳي ٿيڻ لڳي؟ اهو سچ، پر ڪافي نه آهي. اسان اڳ ۾ ئي هڪ مثال "جي خاتمي" تي نظر ٿا ڪريون:
- عالمي $ HTTP_POST_VARS؛
- گونجي $ HTTP_POST_VARS [ 'جو نالو'].
اوھان کي انھن جي وچ ۾ فرق محسوس ڪيو؟ نوٽ ڪريو ته پي PHP حفاظتي عالمي variables ۾ ضروري جو فنڪشن اندر استعمال ڪيو ويندو آهي نه رکندو آھي. اهو به آهي ته ان ۾ شامل آهي هڪ فائل ۾ رکيل ڪري سگهجي ٿو.
لنڪس ۽ حفاظت
توهان ڏسي سگهو ٿا ته جيئن، پي PHP حفاظتي ۾ ٺاهي هڪ عالمي variable ڪو مسئلو نه آهي. پر ڪنهن به خاص مائٽ جوڙي نه آھي؟ ها، اهڙا اڻوڻندڙ روئي ٿي سگهي ٿو جڏهن عالمي استعمال ڪري. پر جيڪي اڳ، ٿورو backstory.
ورشن 4.2.0 ۾ رٿيل register_globals جي هدايت تي رياست کان بند ڪرڻ تبديل. سڀ کان صارفين جي لاء، هي تمام ضروري آهي، پر ضايع نه آهي. سڀ کان پوء، ان کي سڌو سنئون جي ترقي پيداوار جي سيڪيورٽي کي متاثر ڪري. توهان جي variable عالمي، هن سميجي تي پي PHP حفاظتي-هدايت ڪرڻ جي ضرورت آهي ته سڌو سنئون متاثر نه آهي. تنهن هوندي به، غلط استعمال ڪرڻ کان اڳ precedents سيڪيورٽي پيدا ڪري سگهي ٿو.
پوء جيڪڏھن register_globals تي موٽيو آهي، ان کان اڳ جو لکيل ڪوڊ جي execution، سنڌ جي مختلف variables ته سخت ضرورت آهي initialized مثال HTML-فارم موڪلڻ لاء. تنهن ڪري، ان کي ان موڙ بند ڪرڻ جو فيصلو ڪيو ويو.
ڇو PHP عالمي variable ۾ هن هدايت جي حالت تمام گھڻو پاڻ پلي آهي؟ جڏهن ته حقيقت اها آهي ته سنڌ جي ڊولپر جي رياست هميشه يقين سان پاڻ جي سوال جو جواب ٿي سگهي ٿو نه ڪندا آھن جنھن مھل ان کي ڪٿان آيو آهي. هڪ پاسي، ته ان ڪوڊ لکڻ سولو آهي. پر ٻئي تي - ان کي هڪ سيڪيورٽي خطري آهي. تنهن ڪري، غلطيون کان بچڻ لاء، گڏو گڏ ڊيٽا mixing ۽ هدايت تي بند ڪيو ويو آهي.
هاڻي جي / محفوظ نه ڪوڊ نظر ڏين، ان سان گڏو گڏ ڪيس جتي عالمي پي PHP حفاظتي variable جو اعلان ڊيٽا سان tampering تي ڪوشش سان گڏ آهي لڳائڻ سان ڪيئن. هن حڪم نه فقط سهڻي، پر پڻ مسلسل سائيٽن جو آهي ته پهرين موجود شخص شگاف نه ٿا ڪم پيدا ڪرڻ ۾ تمام ضروري آهي.
گندو ڪوڊ
جي سيٽ ته variable جن اختيار ڪيو ويو آهي لاء سچو آھي جڳائي:
جيڪڏھن (authenticate_user ()) {
$ اختيار = سچ؛
}
جيڪڏھن ($ اختيار) {
"/highly/sensitive/data.php" شامل آهن.
}
هن حالت ۾، سنڌ جي variable خودڪار طريقي سان مقرر ڪري سگهجي ٿو. سٺن ته ڊيٽا چئجي متبادل ٿي سگهن ٿا، ۽ انهن جي اصليت جو ذريعو مقرر نه آهي، ته پوء ڪنهن اهڙي هڪ امتحان پاس ۽ ڪو ٻيو ٿي ڀائيندا ڪري سگهو ٿا. جيڪڏهن ارادو ڪيو، ته attacker (يا بس عجيب پر فرزند شخص) impaired ٿي سگهي ٿو، اسان جي عقل.
اسان جي هدايت جي قيمت تبديل ڪري ته، هن جو ڪوڊ صحيح ڪم ڪندو، ته جيئن اسان جي ضرورت هوندي. پر variables جي initialization نه رڳو سنڌ جي پروگرامن ۾ هڪ سٺي ڍنگ آهي، پر شايد اسان جي رسم الخط جي استحڪام جي ڪجهه ضمانت ڏيندو آهي.
جي جياپي جو معتبر نسخو
اوھان کي بند يا ڦري ڪم هدايت، يا هن مقصد حاصل ڪرڻ لاء هڪ کان وڌيڪ پيچيده ڪوڊ فرض ڪري سگهي ٿو. مثال طور، هن طرح:
جيڪڏھن (isset ($ _ سيشن [ 'اسم'])) {
گونج "سلام {$ _ سيشن [ 'اسم']} b>"؛
} ٻئي {
گونجي "سلام مهمان b>
"؛
گونج "ڀلي ڪري آيا استعمال ڪندڙ!"؛
}
هن معاملي ۾ هڪ راء ڪر، نه ڏکيو ٿيندو. پر اڃا تائين - جي لحاظ کان. هن ڪندا، توهان جو خيال آهي ته سنڌ جي دؤران جواب اوزار لڳايا ويا وٺي هجڻ ضروري آهي. توهان پي PHP حفاظتي ۾ عالمي variables شامل ڪرڻ چاهيو ٿا ته، توهان کي هيٺ ڏنل اوزار استعمال ڪري سگهو ٿا: جيڪڏهن اسان کي خبر آهي ته ڪهڙي حد تائين حاصل قدر آهي، ان جي هڪ ميچ سان هن چيڪ ڪرڻ لاء هڪ رسم الخط رجسٽر ڪرڻ ممڪن آهي. جي حقيقت، ان جي به راء انهيء جي خلاف مڪمل تحفظ جي ضمانت نٿو ڏئي. پوء ته تمام گهڻو اختيارن بامعني complicate آهي.
لھي جي ڪوشش masquerade لاء
اچو ته ڏسون ٿا ته اوھان کان اڳ لکيل سمجهي. هن فنڪشن ته هيٺ ڏنو ويندو ۾ پي PHP حفاظتي عالمي variables ۾، تون پنهنجو پاڻ کي بيان ڪرڻ جي ضرورت پوندي. اسين ٿا چئون ته هن جي سبق موضوع جي assimilation تي ڪم جو هڪ قسم آهي. هتي جو ڪوڊ آهي:
<؟ PHP
جيڪڏھن (isset ($ _ ڪوڪي [ 'C_COOKIE'])) {
} Elseif (isset ($ _ حاصل [ 'C_COOKIE']) || isset ($ _ پوسٽ [ 'C_COOKIE'])) {
ميل ( "administrarot@example.com"، $ _SERVER [ 'REMOTE_ADDR'] "سوچيو هيائون، ان جي رسم الخط burglary ۽ ڊيٽا سان tampering تي ڪوشش رڪارڊ ڪيو ويو")؛
گونج "هڪ ٽٽل حفاظت نه هو يا پوء سنڌ جي حاڪم اطلاع ڏيندا ڪرڻ جي ڪوشش ڪئي."؛
خارجي؛
} ٻئي {
}
؟>
هاڻي وضاحت بچائ. مڪمل طور C_COOKIE هڪ معتبر ذريعو کان اسان کي اچي ٿو. هن اميد جي نتيجي موجب، اسان کي ان جي اهميت چيڪ ۽ پريشاني جي صورت ۾ منتظم اطلاح پوريء طرح مطمئن ڪرڻ. ان آيو ته ڪونهي نه، ته پوء ڪو به قدم نه ۽ ڪرڻ جي ضرورت نه ڪيو. اوھان کي سمجهڻ لاء ته رڳو register_globals هدايت کي معزور ڪرڻ سان توهان جي ڪوڊ محفوظ آهي بنائڻ نه ٿو ڪيو آهي. تنهن ڪري، ڪنهن به variable ته دڪاندار کان هڪ رسم الخط وسي، پر توقع جي اهميت لاء تبحر ڪيو وڃي.
ٿڪل
هتي، عام ۾، ۽ سڀڪنھن شيء کي اوھان جو عالمي variables ڪاميابي ۽ بچائي انھن کي سندن ڪم ۾ استعمال ڪرڻ جي باري ۾ ڄاڻڻ جي ضرورت آهي. جي حقيقت، چوندا کي هڪ مڪمل ضمانت آهي ته ڪو به هڪ لاء استعمال ٿيندا کين نه ڪري سگهي آهي ته - حملي سدائين سندن طريقا ۽ صلاحيتن کي بهتر آهن. اهو ان ڪري جو ڪوڊ ۾ عالمي variables جو وڌ ۾ وڌ استعمال حد تائين موزون آهي. خوشقسمتيء سان، هن پروگرامن ٻوليء جي ڍانچي ۽ جوڙجڪ خاصيتون هن مقصد حاصل ڪري سگهو ٿا. سٺي قسمت!
Similar articles
Trending Now