آموزش پیشرفته PHP – فیلتر(اعتبار سنجی)
سلام
در یک جلسه دیگه از آموزش پیشرفته PHP در خدمتتون هستیم، قصد داریم تا در این آموزش به مبحث فیلتر کردن نتایج در PHP بپردازیم؛ فیلتر کردن ورودی ها در PHP از نظر امنیت خیلی به شما کمک میکند تا امنیت سایت خود را از پیش بیشتر کنید و قبل از اجرای هر چیزی، بتوانید داده ها را کنترل کنید که صحت دارد یا خیر، در ادامه همراه بپرسم باشید.
در بحث فیلتر کردن داده ها، دو اصطلاح داریم:
- Validating data: تعیین میکند که داده ها در فرم مناسبی هستند.
- Sanitizing dat: هر کاراکتر غیر قانونی را از داده ها، حذف کنید.
فیلتر کردن در PHP
از فیلترهای PHP برای تایید و پاکسازی داده ها، استفاده میشود. در PHP توابع از پیش تعریف شده ی زیادی برای فیلتر داده ها وجود دارد که استفاده از آن ها بسیار آسان است.
چرا از فیلترها استفاده می شود؟
معمولا تمامی برنامه های تحت وب از بیرون اطلاعاتی دریافت میکنند؛ که این اطلاعات ممکن است توسط کاربران، نرم افزارها، وب سرویس ها و … باشد. برای اینکه بتوانیم صحت این اطلاعات را بسنجیم تا دادهه ای مخرب وارد سایت نشود، از فیلتر PHP استفاده میکنیم.
بسیاری از برنامه های وب از خارج اطلاعات دریافت میکنند، این ورودی ها می تواند:
- ورودی های کاربر از یک فرم
- نتایج در پایگاه داده
- وب سروس ها
- متغیرهای سرور
- کوکی ها
- و … .
شما همیشه باید داده های(ورودی ها) خارجی را تایید کنید!
داده های ارسالی نامعتبر می تواند منجر به مشکلات امنیتی شود و برایتان مشکل ساز شود!
با استفاده از فیلترهای PHP می توانید مطمئن شوید که برنامه شما ورودی صحیحی را دریافت میکند!
تابع ()fliter_var در PHP
تابع ()filter_var داده ها را تایید و تصحیح میکند.
تابع ()filter_var یک متغیر را با فیلتر مشخص، تصحیح میکند، این تابع دو ورودی دارد:
- متغیری که میخواهید بررسی کنید.
- نوع متغیر
فیلتر کردن رشته در PHP
در مثال زیر، در متغیر str$ یک ورود با تگ های HTML دادیم؛ حال میخواهیم تمامی تگ های HTML را حذف و فقط رشته را در خروجی چاپ کنیم، برای این کار به صورت زیر عمل میکنیم:
۱ ۲ ۳ ۴ ۵ |
<?php $str = "<h1>www.beporsam.ir</h1>"; $newstr = filter_var($str, FILTER_SANITIZE_STRING); echo $newstr; ?> |
خروجی کد بالا به صورت زیر است:
تایید عدد صحیح در PHP
در مثال زیر از تابع ()filter_var برای بررسی اینکه آیا مقدار وارد شده در متغیر int$ یک عدد صحیح است یا خیر، استفاده میشود
۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹ |
<?php $int = ۱۰۰; if (!filter_var($int, FILTER_VALIDATE_INT) === false) { echo("مقدار وارد شده عدد صحیح نیست"); } else { echo("مقدار وارد شده عدد صحیح نیست"); } ?> |
خروجی کد بالا به صورت زیر است:
اعتبار سنجی آدرس IP در PHP
در مثال زیر از تابع ()filter_var برای بررسی اینکه مقدار وارد شده در متغیر ip$ آدرس IP معتبری است، استفاده میشود:
۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹ |
<?php $ip = "۱۲۷.۰.۰.۱"; if (!filter_var($ip, FILTER_VALIDATE_IP) === false) { echo("آدرس آیپی معتبر نیست"); } else { echo("آدرس آیپی معتبر نیست"); } ?> |
خروجی کد بالا به صورت زیر است:
اعتبار سنجی ایمیل در PHP
در مثال زیر با استفاده از تابع ()filter_var ابتدا همه ی کاراکترهای غیر قانونی را از متغیر email$ حذف میکنیم و سپس بررسی میکنیم آدرس ایمیل معتبر است یا خیر:
۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹ ۱۰ ۱۱ ۱۲ ۱۳ |
<?php $email = "beporsam@gmail.ir"; // Remove all illegal characters from email $email = filter_var($email, FILTER_SANITIZE_EMAIL); // Validate e-mail if (!filter_var($email, FILTER_VALIDATE_EMAIL) === false) { echo("ایمیل وارد شده معتبر است"); } else { echo("ایمیل وارد شده معتبر نیست"); } ?> |
خروجی کد بالا به صورت زیر است:
اعتبار سنجی لینک در PHP
در مثال زیر با استفاده از تابع ()filter_var ابتدا همه ی کاراکترهای غیر قانونی را از متغیر url$ حذف میکنیم و سپس بررسی میکنیم لینک وارد شده صحیح است یا خیر:
۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹ ۱۰ ۱۱ ۱۲ ۱۳ |
<?php $url = "https://beporsam.ir"; // Remove all illegal characters from a url $url = filter_var($url, FILTER_SANITIZE_URL); // Validate url if (!filter_var($url, FILTER_VALIDATE_URL) === false) { echo("لینک وارد شده صحیح است"); } else { echo("لینک وارد شده صحیح نیست"); } ?> |
خروجی کد بالا به صورت زیر است:
بحث فیلتر کردن داده ها را در همین جا به اتمام می رسانیم، تا در قسمت بعدی به صورت پیشرفته تر به اعتبار سنجی داده ها بپردازیم.
این قسمت از آموزش به پایان رسید، مشکلی در رابطه با آموزش بالا داشتید می توانید در سایت بپرسید.
موفق باشید.
ارسال نظر
شما باید وارد شوید یا عضو شوید تا بتوانید نظر ارسال کنید