فیلتر ها در PHP
در این بخش به بررسی فیلتر ها در PHP می پردازیم. برای حفظ امنیت وب سایت و جلوگیری از بروز هرگونه باگ و خطا ، ما باید داده های ارسال از سمت کاربر را فیلتر و اعتبار سنجی کنیم.
از فیلتر ها چه استفاده ای می کنیم:
- اعتبار سنجی داده ها: بررسی می کنیم که آیا داده ها صحیح و مطابق با آن چیزی که مشخص شده هستند یا خیر
- پاک سازی داده ها: هرگونه کاراکتر غیرقانونی را از داده ها حذف می کنیم.
افزونه های فیلتر در PHP
به طور پیش فرض PHP توابع و افزونه های بسیار زیادی برای اعتبار سنجی و یا پاک سازی داده ها دارد که باعث شده روند اعتبار سنجی و پاک سازی داده ها بسیار ساده تر و آسان تر بشود.
تابع filter_list
می تواند لیست افزونه های فیلتر ارائه شده PHP را در اختیار ما قرار بدهد:
مثال
چرا باید از فیلتر ها در PHP استفاده کنیم ؟
بسیاری از وب اپلیکیشن ها داده ها و ورودی های خارجی دریافت می کنند.
- ورودی های input در فرم ها
- کوکی ها
- داده های خدمات وب
- متغیر های سرور
- نتایج پرس و جو (query) مربوط به پایگاه داده
همانطور که اشاره شد بخاطر مسائل امنیتی و جلوگیری از بروز مشکلات در وب اپلیکیشن باید داده های خارجی را اعتبار سنجی کنیم.
تابع filter_var در PHP
تابع filter_var
در PHP داده ها را اعتبار سنجی و پاکسازی می کند.
تابع filter_var
دو پارامتر دارد که در پارامتر اول متغیر و در پارامتر دوم نوع فیلتر مورد نظر را میگیرد.
در ادامه مثال های بیشتری در این خصوص ذکر شده.
اعتبار سنجی رشته ها در PHP
در مثال زیر با استفاده از تابع filter_var()
تمام تگ های HTML را پاک سازی و تبدیل به رشته می کنیم.
در مثال بالا اگر این پاک سازی را انجام ندهیم ، کد های HTML به سند تزریق شده و باگ XSS به وجود می آید.
اعتبار سنجی اعداد در PHP
در مثال زیر با استفاده از تابع filter_var
بررسی می کنیم که مقدار متغیر $int
یک عدد صحیح است یا خیر.
حل مشکل تابع filter_var با عدد 0
در مثال بالا اگر عدد ما برابر با 0 باشد خروجی “Integer is not valid” خواهد بود ، برای حل این مشکل از کد زیر استفاده کنید:
اعتبار سنجی آدرس IP در PHP
در مثال زیر با استفاده از تابع filter_var
بررسی می کنیم که مقدار متغیر $ip
یک آدرس IP معتبر است یا خیر:
اعتبار سنجی ایمیل در PHP
برای انجام اینکار از تابع filter_var
استفاده می کنیم ، این تابع ابتدا تمام کاراکتر های خاص م غیر مجاز متغیر $email
را حذف می کند سپس بررسی می کند که ایمیل معتبر است یا خیر:
پاک سازی و اعتبار سنجی URL در PHP
در این مثال تابع filter_var()
ابتدا تمامی کاراکتر های خاص و غیر مجاز URL را حذف می کند سپس بررسی می کند که آیا آدرس URL متغیر $url
صحیح است یا خیر:
آیا این مطلب برای شما مفید بود ؟