گام ۵: اعتبارسنجی دادهها (Validation)
در گام چهارم، ما هیجانزده بودیم که بالاخره توانستیم از کاربر «داده» بگیریم. فرم ساختیم و با $_GET و $_POST اطلاعات را دریافت کردیم.
اما در این گام، میخواهیم با یک واقعیت مهم در دنیای برنامهنویسی روبرو شویم:
اصل شماره یک امنیت:
"هرگز، هرگز، هرگز به ورودی کاربر اعتماد نکن!" (Never Trust User Input)
کاربران ممکن است دادههای اشتباه، ناقص، یا حتی کدهای مخرب (مثل جاوا اسکریپت) را در فرمهای ما وارد کنند. وظیفه ما به عنوان برنامهنویس، این است که مانند یک «نگهبان» (Validator) و یک «متخصص خنثیسازی» (Sanitizer) عمل کنیم. در این گام، یاد میگیریم چطور دادههای ورودی را قبل از هر کاری، تمیز، بررسی و ایمن کنیم.
سطح A: نگهبان ورودی (جلوگیری از فرم خالی)
اولین خط دفاعی ما این است که مطمئن شویم کاربر اصلاً چیزی فرستاده است!
در این سطح، با توابع empty() و trim() آشنا میشویم تا جلوی ارسال فرمهای خالی یا فرمهایی که فقط شامل «فاصله» هستند را بگیریم.
سطح B: زره امنیتی (خنثیسازی XSS)
در این سطح، با یکی از مشهورترین حملات وب به نام XSS آشنا میشویم.
یاد میگیریم که چطور با تابع جادویی htmlspecialchars() کدهای مخرب را خنثی کنیم تا در مرورگر اجرا نشوند.
همچنین با is_numeric() مطمئن میشویم که ورودی مورد انتظار ما، واقعاً «عدد» است.
سطح C: اعتبارسنجی مدرن (PHP Filter)
چطور بفهمیم یک ورودی، واقعاً شبیه «ایمیل» است؟ یا یک «آدرس IP»؟
نوشتن قانون برای اینها بسیار سخت است. در این سطح، با افزونه Filter در PHP آشنا میشویم
و یاد میگیریم چطور با تابع filter_var() به صورت حرفهای و استاندارد، فرمت دادهها را اعتبارسنجی کنیم.