ڪمپيوٽرنفائيل قسمن

پي PHP حفاظتي: سرور کي فائيل اپلوڊ

پي PHP حفاظتي ذريعي فائلون ڊائون لوڊ - هڪ ڏاڍي دلچسپ صورت آهي، جنهن کي تمام ڌيان پيشڪش ٿي هجڻ ضروري آهي. انٽرنيٽ تي توهان فائيل اپلوڊ جي عمل ڪرائڻ جي ٻيا مثال ڏسي سگهو ٿا، پر نه سڀ انهن مان سٺي آهي ۽ حفاظت ضابطو ملن ٿا.

اهڙي شيء به ته ان کي هڪ ڊگهي وقت وٺندو آهي، هڪ ٿڪل کي آڻڻ جي ضرورت آهي. توهان جي ڪوڊ ۾ هڪ خال ڇڏي، ته پوء پنهنجي سموري سرور compromised ڪري سگهجي ٿو.

حفاظت

پي PHP حفاظتي سان فائيل اپلوڊ جي سرور کي ڪافي آساني جا پيروڪار آهي. هن ڪوڊ تمام ننڍو ۽ سادو آهي. بس نالين جي هڪ جوڙو. تنهن هوندي به هن جو طريقو خطرناڪ آهي. گهڻو ڪري وڌيڪ وقت ۽ ڪوڊ جي نالين جي حفاظت لاء پري.

هن خطري ته، جيڪڏهن توهان inspections نه ڪندا، ڪنهن به attacker پنهنجي سرور تي سندن اسڪرپٽ لوڊ ڪري سگهي آهي. هن معاملي ۾، ان کي پورو رسائي ڪندو. هن چيو ته جيڪي هن چيو ته هو چاهي ڪري سگهو ٿا:

  • جي ڊيٽابيس کي حذف؛
  • فائلون، سائيٽن کي حذف؛
  • فائلون، سائيٽن کي بهتر؛
  • توهان جي ويب سائيٽ کي پنهنجي ع شامل؛
  • ڊائون لوڊ وائرس؛
  • انهن سائيٽن تي سڀ صارفين ڌيان؛
  • ۽ ٻين ڪيترن ئي شين ته ذهن attacker وٽ ايندا.

توهان هميشه چيڪ ڪرڻ گهرجي ته ان جي استعمال ڪندڙ لاء هڪ فائل ڊائون لوڊ ڪرڻ جي ڪوشش. مثال طور، توهان صرف تصويرون اپ لوڊ ڪريو ته، اهو ضروري تصديق ڪرڻ لاء ته فائيل صحيح هڪ تصوير آهي. ٻي صورت ۾، توهان کي ڪا به ڊائون لوڊ ٿيندو.

انهيء کان ڪيئن تصديق تي عمل ڪرڻ، ان جي سڌي امتحان رسم الخط فائلون اپلوڊ ڪرڻ سان، ڏيکاريو ويندو.

هڪ PHP حفاظتي فارم ٺاهڻ

فائيل اپلوڊ فارم تمام سادو آهي. جي برائوز بٽڻ غائب ۽ بٽڻ اپ لوڊ ڪريو.

صورتون پيدا ڪرڻ ڪيئن نه ٿيندو بيان، ته ان کي آسان آهي، ڇاڪاڻ ته. وڌيڪ هدايتن فرض اوھان کي اڳ ۾ ئي بنيادي HTML پوسٽ جي حوصله (ٻي صورت ۾ توهان کي پي PHP حفاظتي تي ڊائون لوڊنگ جي باري ۾ معلومات لاء ڳولي نه ڪيو وڃي ها) ڪيو ته.

پر نوٽ بڻجي توهان جي enctype وصف شامل ڪرڻ جي ضرورت ۾ ڊيٽا ته.

ٻي صورت ۾، فائيل handler تي ڊيٽا منتقل نه ڪيو ويندو.

ان کي ڪيئن ڪم ڪرڻ گهرجي؟

توهان برائوز بٽڻ تي ڪلڪ ڪريو جڏھن اوھان کي هڪ خاني جتي هڪ فائيل چونڊي ڪرڻ لاء چيو ڏسڻ گهرجي.

ته پوء ان کي هڪ واٽ جتي فائيل تي واقع آهي وصول ڪرڻ جي ضرورت پوندي.

واٽ نظر نه ايندي آهي ته، سنڌ جي ڪارروائي ٻيهر انجام.

جي ڊائون لوڊ فائيل handler تي ڪلڪ ڪري پوء ڪنهن به معلومات ڏئي سگهن ٿا.

مثال طور، توهان جي قطار ۾ چيو ويو آهي ته سنڌ جي فائيل آهي "پوء ۽ پوء" جي نالي سان ڪاميابي جو "جيئن ۽ جيئن ته" فولڊر ۾ اپ لوڊ ڪيو ويو آهي لکڻ ڪري سگهو ٿا. جي حقيقت، ان جي فائل جو نالو هميشه مختلف ڏنو ويندو.

عام طرح، هن معلومات debug ڪوڊ ڪرڻ لاء استعمال ڪيو ويندو آهي. اهڙيء طرح ان جي تصديق ڪرڻ لاء ته هن انگن اکرن جي منتقلي ۽ گهربل ڊاريڪٽري ۾ نمودار لکي آهي ممڪن آهي. ته به ان جي فائيل جي نالي سان اشارو نه آهي، نه آهي. هن اضافو معلومات آهي ته يوزر جي ضرورت نه ٿو وٺي.

اهو نالو استعمال ڪندڙ کان وڌيڪ فائلون ڊائون لوڊ صرف جيڪڏھن اوٽ ڪرڻ جو احساس ڪندو آھي. اهڙي صورت ۾ آهي، ٿورو وڌيڪ غور. جي پاڻ جي تڪڙ نه وڃڻ ڏين.

adjustment

پي PHP حفاظتي فائيل ۾ سرور کي اپلوڊ، ڪجهه جوڙ جي ضرورت آهي جنهن جي php.ini فائيل ۾ ڪيو وڃي ٿو. هن فائل جوڙ جو تمام گهڻو آهي. اهي سڀ اسان جي ضرورت نه ڪندا آھن. file_uploads، upload_tmp_dir ۽ upload_max_filesize: اسان کي ٽي سٽون ۾ دلچسپي آهي.

مهرباني ڪري نوٽ ڪريو ته انهن جوڙ جي سرور، نه صرف ڪنهن هڪ تي توهان جي سائيٽن جي سڀ متاثر ٿيندا. تنهن ڪري، ان جي حقيقت اها آهي ته توهان کي استعمال ڪندڙن لوڊ ڪرڻو پوندو جي بنياد تي سنڌ جي وڌ ۾ وڌ سائيز مقرر ڪرڻ. اهو تمام وڏو مقرر ڪرڻ جي سفارش نه ڪئي آهي.

هڪ ڀيرو توهان کي انهن جي حراست ۾ انهيء تبديل، توهان جي سرور وري هلايو ڪرڻ جي ضرورت آهي. ٻي صورت ۾ سنڌ جي جوڙ اثر نه وٺي ويندي، ته جيئن اهي سرور بار جي وقت ۾ پڙهي.

توهان جي سرور کي SSH ذريعي ملائڻ سان دلاسو ۾ هن ڪري سگهو ٿا. بس جي حڪم جي خدمت httpd وري هلايو ۾ داخل، ۽ ان کان پوء جوڙ اثر وٺي ويندي.

ٻيو طريقو - ISP-پينل جي ذريعي يا پئسن پينل فراهم ڪرڻ جي ذريعي هڪ وري هلايو.

ڪيريو فائل

پي PHP حفاظتي فائيل ۾ اپلوڊ جي صف $ _FILES طرفان ڪيو ويندو آهي. اهو ئي فائلون ته اسان کي ڊائون لوڊ جي باري ۾ سڀ معلومات تي مشتمل آهي.

فائل handler تي عمل ۾ لکڻ لاء ڪافي ڏسي ڇا معلومات جي صف ۾ شامل آهي.

ڪنهن به فائيل کي منتخب ڪريو ۽ ڪلڪ ڪريو "اپ لوڊ ڪريو." جي handler صفحي تي ڄاڻ آهي ته $ _FILES ۾ محفوظ آهي ڊسپلي ڪندو. هن variable معنى گاديء جو خط سان لکيل آهي. پي PHP حفاظتي - هڪ ٻولي-حساس.

توهان ڏسي سگهو ٿا ته جيئن، هن صف ۾ شعبن جو تمام گهڻو ڪيو آهي. انهن مان سڀ اسان لاء اهم آهن. پهريون ميدان بڻجي جنهن ۾ ان کي توهان جي ڪمپيوٽر تي استعمال ڪيو ويندو آهي ۾ فائل جو نالو آهي.

هن قسم جي ڪالمن جو فائيل قسم جي مخصوص. Tmp_name جي ميدان ۾ هن ٿوري وقت فائيل جي نالي ڪري سگهي. رسم الخط جي ختم ٿيڻ کان پوء ختم ٿي ويندو.

هن غلطي جي ميدان ۾ هڪ غلطي ڪوڊ شامل آهي. هن ٿوري وڌيڪ هئي. ڪرائون سائيز واري - Bytes ۾ ڪرائون سائيز واري.

غلطيون

جي پي PHP حفاظتي فائيل اپلوڊ جي ذريعي جا پيروڪار هميشه غلطي ڪوڊ سان گڏ آهي. هڪ مسئلو ته "غلطي" ۾ داخل ٿيو. هن اسڪرين شاٽ غلطي ٻڙي آهي.

سڀ غلطيون جي اهميت تي غور ڪيو:

اهو سميجي ته ويچارا HTML پوسٽ ۾ متعين ڪري سگهجي ٿو جي باري ۾ مٿي چيو ويو.

هتي جي فائيل، جنهن جي لوڊ فائيل جي رقم جي هڪ حد اشارو ڊائون لوڊ ڪرڻ لاء هڪ نمونو بڻجي آهي.

پي PHP حفاظتي: فائيل اپلوڊ رسم الخط

سڀ رواج ۾ پيروڪار جي حيثيت ۾؟ پي PHP حفاظتي فائيل ۾ اپلوڊ ڪاپي حڪم وٺندي آهي. جو ذريعو فائيل ۽ منزل فائيل - تون ڪيئن هڪ فائل ڊائون لوڊ ڪرڻ جي سوال ۾ دلچسپي آهي، ته ان جي جواب سادو copy-، جنهن ۾ ٻه حراست ۾ استعمال ڪري رهيو آهي.

پر، جيئن مٿي چيو، ان جي حفاظت سبب لاء محدود نه ٿو ڪري سگهجي. مثال طور، ٻاهر چيڪ اسان فائيل ڪهڙي قسم جو ٻيڙيء، توهان جي ميدان ۾ به قسم جي صف $ _FILES ۾ استعمال ڪري سگهو ٿا. پهريون، جي انسپيڪشن سان ڀائر، ۽ پوء ان جي مڪمل اسڪرپٽ ڪرڻ تي وڃڻ گھرجي

جي چوندا آھن توهان استعمال ڪندڙن رڳو GIF، بعض يا PNG جي هڪ قرارداد سان هڪ تصوير اپلوڊ ڪرڻ جي اجازت ڪرڻ چاهيو ٿا ڏين. ظاهر آهي ته اها هن طرح ٿي سگهي ٿو.

جيڪڏھن ($ _ فائلون [ 'file_upload'] [ 'قسم']! = "تصوير / GIF") {
گونج "معاف ڪجو، اسان کي رڳو GIF-فائلون ڊائون لوڊنگ جي حمايت"؛
خارجي؛
}

توهان سڀني 3 قسمن جي ٻيڙيء ڪرڻ چاهيو ٿا ته، رڳو تصوير جي ٻئي قسم کي هڪ اضافي شرط شامل.

ڪاپي (تصوير 1، تصوير 2): نقل ڪندي هن طرح ڪيو آهي.

اسان جي حالت ۾، جڏهن ته ڪم جي سرور جي پي سي تان ڊائون آهي، تون ائين ڪري سگهو ٿا

ڪاپي ($ _ فائلون [ 'file_upload'] [ "tmp_name"]، "1.jpg")

آهي، جو فائيل جي نالي سان 1.jpg سان ڪاپي ٿي ويندو. اها معنى به صحيح نه آهي. هن معاملي ۾، اهو صرف هڪ مثال آهي. فائل جو نالو هميشه جي فائيل تي منحصر ڪري مختلف ڄاڻائي، ۽ واڌ ڄاڻائي ڪرڻ لاء، ضروري آهي.

اهو طئي جي واڌ مختلف طريقن سان ٿي سگهي ٿو. اهو سڀ erudition جي ڊولپر تي دارومدار. لاء (سيڪنڊ جو لاڳو ڪبو ته ڪو فرق) تيزترين طريقن جي واڌ جو اندازو لڳائي مان هڪ - هن جي ايندڙ ڪوڊ آهي.

$ Path_info = pathinfo ($ _ فائلون [ 'photo1'] [ "جي نالي سان"])؛

$ Ext = $ path_info [ 'واڌ']؛

هن variable جي ext اسان جو ارادو ڪيو واڌ ذخيرو ڪندو $. هڪ فائيل جي نالي سان md5 استعمال ڪندي بي ترتيبي تي مقرر ڪري سگهجي ٿو. توهان فائلون جو تمام گهڻو ڊائون لوڊ ڪرڻ لاء ئي پلان آهي ته، اهو کين مختلف فولڊرن کي ٻيڙيء لاء ڀلو آھي. پوء ان کان وڌيڪ آسان ٿي ويندو. خاص ۾، جيڪڏهن توهان کي نکيڙي ڪرڻ چاهيو ٿا.

هن ڪوڊ ڊائون لوڊ ڪرڻ جي پٺيان طور تي ٿيندو.

/// تصوير سان

جيڪڏھن ($ _FILES [ 'photo1'] [ 'tmp_name'] == اجايو)

{

گونج ( "

<مضبوط> اڻڄاڻ فائيل.

واپس ... ")؛

خارجي؛

}

///. توهان جي سرور تي ڪنهن به منصوبي لاء چوندا آھن وڏي فائلون (وڊيو) لوڊ ڪرڻ جي اجازت ڏني آهي، پر اتي صرف تصويرن آھن، ۽ صارفين کي محدود ڪرڻ جي ضرورت آهي

جيڪڏھن (($ _FILES [ "photo1"] [ "ماپ"]> 1024 * 1024 * 2)

{

؟>

<مضبوط> 2 ايم بي جي

سنڌ جي وڌ ۾ وڌ اجازت سائيز

واپس ...

خارجي؛

}

// فولڊرن ٺاهي

// موجوده مهيني جي هڪ فولڊر ٺاهي

جيڪڏھن (! file_exists ( "IMG /". تاريخ ( "م")))

{

mkdir ( "IMG /" تاريخ ( "م").).

}

// موجوده ڏينهن جي هڪ فولڊر ٺاهي

جيڪڏھن (! file_exists ( "IMG /". تاريخ ( "م"). "/". تاريخ ( "د")))

{

mkdir ( "IMG /" تاريخ ( "م") "/" تاريخ ( "د") ...)؛

}

/// فائيل واڌ

$ Path_info = pathinfo ($ _ فائلون [ 'photo1'] [ "جي نالي سان"])؛

$ Ext = $ path_info [ 'واڌ']؛

/// filename پيدا

$ ID = md5 (تاريخ ( "YMd"))؛

جيڪڏھن (ڪاپي ($ _ فائلون [ 'photo1'] [ "tmp_name"]، "IMG /". تاريخ ( "م"). "/". تاريخ ( "د"). "/". $ ID. $ ext) )

{

گونج ( "عڪس ڪاميابي سان اپلوڊ ٿي")؛

}

/// ڪنهن به وڌيڪ عمل (جي ڊيٽابيس ۾ داخل ٿيڻ، ۽ پوء تي. اتر)

}

گھڻن فائلون

گھڻن فائلون (PHP حفاظتي) Uploading جي روپ ۾ اضافي شعبن جي ذريعي وٺندي آهي.

هن جو طريقو جيئن ان کي ڊائون لوڊ ڪرڻ لاء فائلون جو تعداد حدن، تمام سٺو نه آهي. ان کانسواء، ان جي پروگرامن ۾ خراب فارم سمجهيو ويندو آهي. سڀڪنھن شيء کي متحرڪ ڪندا ڪرڻ جي ڪوشش ڪئي.

هن مثالي اختيار - اها هڪ طرفي بٽڻ نپوڙيان ٿو جي فوري طور تي فائلون جي هڪ وڏي انگ جي پسند آهي.

هن ڪندا، هن ڪوڊ وانگر هڪ شڪل ٺاهي.

< "فائل ڪرڻ لاء handler لنڪ" جو نالو = "upload_form" enctype = "multipart / فارم-ڊيٽا" ڀيرومل جو طريقو = "غزل" عمل =>

<داخل ٿيل طبقي = "form_upload" قسم = "فائل" جو نالو = "file1 []" کان وڌيڪ اهميت = "جو خلاصو">

<داخل ٿيل طبقي = "form_upload" قسم = "جمع" جو نالو = "upldFile" قدر = "شامل ڪريو" />

نوٽ ڪريو ته لفظ جي گھڻن کان سواء، ۽ نالي هڪ ڪيريو [] طور ڏنو ويو آهي. هن معاملي ۾، $ _FILES ڪيريو ذرا مختلف ٿي ويندي. توهان جي ڪيريو جي هڪ ڪيريو حاصل ڪندو.

امتحان پاس ڪرڻ لاء ٻيهر var_dump ($ _ فائلون) استعمال ڪري سگهو ٿا.

توهان سڀ فائلون هن طرح جي صف ۾ رکيو ويندو:

  1. $ _FILES [ "file1"] [ "جي نالي سان"] [0]
  2. $ _FILES [ "file1"] [ "جي نالي سان"] [1]
  3. ۽ پوء تي.

قوسين ۾ صف ۾ فائل نمبر لکيل آهي. ٻڙي کان ڳڻپ. اسان انھن جي ساڳي واٽ ۾ ڪهڙو، بس جي چڪر پڇا ڳاڇا ۽ [$ آء] گڏي جي انڊيڪس جي آخر ۾ سنڌ جي مٿان-بيان ڪوڊ سان رابطو ڪندي.

$ مون = 0؛

جڏهن ته ($ _FILES [ "file1"] [ "جي نالي سان"] [$ آء] <> '')

{

/// جي مٿان ڪوڊ پيسٽ ڪريو

}

اهڙيء طرح، توهان جي ڪوڊ جي غير ضروري دهرائڻ کان سواء هڪ چڪر ۾ سرور کي هڪ PHP حفاظتي فائيل اپلوڊ ذريعي ايڏو وڏو آهي، جيئن عام طور تي هن معاملي جيڪڏھن اوھين (آخري ڦوٽو) فائلون جي هڪ جامد نمبر سان نسخو استعمال آھي آهن.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 sd.birmiss.com. Theme powered by WordPress.