مسلما میدانید که php بر اساس زبان سی نوشته شده است و خیلی از توابع این دو زبان هم دقیقا مثل هم هستند و حتی کاربردهایشان، حالا میخواهم شما را به کلاس برنامه نویسی مقدماتی توی دانشگاه ببرم که تقریبا بیشتر رشتههای فنی داشته اند اگر یادتان باشد در مبحث آرایهها وقتی استادتان به شما این مبحث را آموزش میداد گفته بود که آخرین خانه از آرایه با عبارت 0\ و یا همان نال بایت پرخواهد شد و هیچ مقدار دیگری را نخواهد پذیرفت و برنامه وقتی به این عبارت برسد خواهد فهمید که آرایه به انتها رسیده و آن تمام شده است و دیگر ادامه نخواهد داد حالا کافی است کاربر ما در اسکریپت نوشته شده توسط ما از این ترفند استفاده نماید یعنی توسط یک کد هگز که به صورت 00% خواهد بود کل روال کار ما را عوض کند یعنی مقدار فرستاده شده به صورت زیر باشد:

حال دیگر پسوندی را که ما در ادامه رشته قرار دادهایم خوانده نخواهد شد مثل اینکه اصلا php. وجود ندارد و کاربر قادر خواهد بود هر فایل را در هر شاخهای و با هر پسوندی include نمایید !!!
جالب بود نه؟ دقت کنید که تعداد /... ها اصلا مهم نیست چون به هر مقداری هم که باشد و کاربر بخواهد عقب برود از root عقبتر نمیتواند برود و از آنجا میتواند آدرس دلخواه خود را وارد نماید.
یا حتی ممکن است کاربر از این فراتر برود مثلا یک فایلی را بر روی سایت شما آپلود نماید یک فایل مخرب و آن را اجرا نماید مثلا در قسمت آپلود آواتار اگر مسائل ایمنی رعایت نشود کاربر همچین فایلی را آپلود خواهد کرد shell.php.jpg خوب سایز فایل کمتر از حد مجاز است پس موردی ندارد پسوند فایل jpg میباشد پس فایل آپلود خواهد شد اما چون عکس حقیقی نیست نمایش داده نمیشود و این اصلا مهم نیست برای کاربر خوب حالا کاربر آدرس آواتارها بر روی سایت شما را دارد محلی که آواتارها آپلود میشود و با استفاده از ترفندی که گفتم یعنی 00% آدرس را به این صورت وارد میکند:

و دیگه کلا هاست در اختیار هکر محترم قرار خواهد گرفت.
پس دیدی که استفاده نا مناسب و اشتباه ممکنه چه خطرات زیان باری را داشته باشد.
اما خوب حالا واقعا بهترین و امنترین راه حل برای استفاده از این تابع چیست؟ در این جور مواقع چه کاری انجام دهیم؟
بهترین راه حل استفاده از آرایهها میباشد به این صورت که ما آرایه ای به شکل زیر تعریف خواهیم کرد:

که داریم language[0]=$farsi و language[1]=$english و مقداری را که کاربر فرستاده است با این دو خانه از آرایه مقایسه خواهیم کرد اگر مقدار آن دقیقا برابر بود با farsi و یا دقیقا برابر بود با english خواهیم نوشت:

راه حل دیگری که میتوان از آن استفاده کرد مخصوصا برای جلوگیری از کاراکترهای غیر مجاز مثل نال بایت استفاده از عبارات منظم میباشد.
خوب با استفاده و رعایت موارد گفته شد در بالا اسکریپت ما امن خواهد شد و کاربر قطعا دیگر نمیتواند فایل دیگری را اجرا نماید. برای انتخاب قالب نیز میتوان از همین روش استفاده کرد.
امیدوارم این آموزش بدردتان خورده باشد.
اگر جایی از آموزش مشکلی داشت و یا موارد دیگری برای تکمیل تر شدن آموزش به نظرتان رسید خوشحال خواهم شد که برایم ارسال نمایید.
موفق باشید.
امین شفیعی؛
نظر شما در مورد این آموزش |
بوسیله: , در: Tuesday, 2012 November 20
عااااااااااااااااااااااااااااااالی بود مرسییییییی
بوسیله: , در: Tuesday, 2012 November 20
عااااااااااااااااااااااااااااااالی بود مرسییییییی
amir
بوسیله: mafia1990, در: Sunday, 2013 September 08
tnx
saeid programmer
بوسیله: , در: Tuesday, 2013 September 10
سلام دوست عزیر
فکر نمی کنم کسی طراح سایت باشه و از این اشتباهات انجام بده
این بدترین حالت ممکن است که در سایتی زبان توسط combo box گرفته شود. اما به هر حال از این که زحمت کشیدید و مطالب رو تایپ کردید ممنونم.
اما در کل این مطالب شما صحت دارد و شاید که نه حتماً سایت هایی که هک می شوند از این قبیل حفره ها زیاد دارند!
saeid programmer
بوسیله: , در: Tuesday, 2013 September 10
سلام دوست عزیر
فکر نمی کنم کسی طراح سایت باشه و از این اشتباهات انجام بده
این بدترین حالت ممکن است که در سایتی زبان توسط combo box گرفته شود. اما به هر حال از این که زحمت کشیدید و مطالب رو تایپ کردید ممنونم.
اما در کل این مطالب شما صحت دارد و شاید که نه حتماً سایت هایی که هک می شوند از این قبیل حفره ها زیاد دارند!
saeid programmer
بوسیله: , در: Tuesday, 2013 September 10
سلام دوست عزیر
فکر نمی کنم کسی طراح سایت باشه و از این اشتباهات انجام بده
این بدترین حالت ممکن است که در سایتی زبان توسط combo box گرفته شود. اما به هر حال از این که زحمت کشیدید و مطالب رو تایپ کردید ممنونم.
اما در کل این مطالب شما صحت دارد و شاید که نه حتماً سایت هایی که هک می شوند از این قبیل حفره ها زیاد دارند!
اسماعیل
بوسیله: , در: Saturday, 2013 October 12
عالی بود ... دستتون درد نکنه ... ممنون
محمد
بوسیله: , در: Wednesday, 2024 February 28
سلام وقت بخیر rnاگه ابتدای ه صفه از سشن استفاده کنیم هم خوب است rnو فرد مهاجم به صفه های پی اچ پی دسترسی پیدا نمیکند

English
العربی
Swedish
François

