آموزش رایگان PHP

راهنمای جامع پاک‌سازی داده‌های ورودی در PHP بر اساس استانداردهای گوگل

1405/04/27 22:21 محراب حسن زاده
راهنمای جامع پاک‌سازی داده‌های ورودی در PHP بر اساس استانداردهای گوگل

مقدمه: چرا نباید به داده‌های ورودی کاربر اعتماد کرد؟

یکی از قوانین طلایی امنیت وب که همواره توسط مهندسان امنیتی گوگل تاکید می‌شود این است: هرگز به ورودی‌های کاربر اعتماد نکنید! هر داده‌ای که از مرورگر کلاینت به سرور ارسال می‌شود (از طریق فرم، پارامترهای URL، هدرها یا کوکی‌ها)، پتانسیل مخرب بودن را دارد. هکرها از این ورودی‌ها برای اجرای حملاتی مانند تزریق کد مخرب (XSS) و تزریق کدهای پایگاه داده (SQL Injection) استفاده می‌کنند.

تفاوت اعتبارسنجی (Validation) با پاک‌سازی (Sanitization)

قبل از پرداختن به کدنویسی، تفکیک این دو مفهوم ضروری است:

  • اعتبارسنجی (Validation): فرآیند بررسی منطقی بودن داده است (مثلاً آیا ساختار ورودی یک ایمیل معتبر است؟ یا سن کاربر یک عدد بزرگتر از صفر است؟).
  • پاک‌سازی (Sanitization): فرآیند حذف یا بی‌اثر کردن بخش‌های مخرب داده است به طوری که ذخیره‌سازی و پردازش آن آسیبی به سیستم نرساند.

استانداردهای امنیتی گوگل در پاک‌سازی ورودی‌ها

گوگل توصیه می‌کند که فرآیند مقابله با تهدیدات ورودی در سه لایه انجام شود:

  1. فیلتر کردن ورودی‌ها در بدو ورود: استفاده از فیلترهای سخت‌گیرانه برای حذف کاراکترهای اضافی.
  2. استفاده از سیستم‌های آماده و امن (Prepared Statements): برای ارتباط با دیتابیس همواره از PDO و کوئری‌های از پیش آماده استفاده کنید تا جلوی SQL Injection گرفته شود.
  3. فرار دادن خروجی متناسب با کانتکست (Context-aware Escaping): خنثی‌سازی کدهای HTML در زمان نمایش به کلاینت جهت خنثی‌سازی حملات XSS.

پیاده‌سازی پاک‌سازی داده‌ها در PHP

زبان PHP مجهز به توابع پیش‌فرضی است که مطابق با استانداردهای مدرن، فیلترهای متنوعی را اعمال می‌کنند. بهترین راهکار، استفاده از توابع خانواده filter_var است.

۱. فیلتر کردن و پاک‌سازی آدرس ایمیل

برای حذف کاراکترهای غیرمجاز از آدرس ایمیل، از فیلتر FILTER_SANITIZE_EMAIL استفاده می‌کنیم:


$dirty_email = "user(example)@domain.com";
$clean_email = filter_var($dirty_email, FILTER_SANITIZE_EMAIL);
// خروجی: userexample@domain.com

۲. پاک‌سازی آدرس‌های وب (URL)

پاک‌سازی آدرس‌های URL جهت جلوگیری از هدایت کاربر به سایت‌های مخرب بسیار مهم است:


$dirty_url = "https://google.com/test";
$safe_comment = htmlspecialchars($user_comment, ENT_QUOTES, 'UTF-8');
// خروجی: <script>alert('Hacked');</script>

نمونه ساختار HTML ایمن شده:

طبق قانون چهارم، نمونه زیر نمایش‌دهنده یک تگ ایمن با فاصله‌های مجاز برای جلوگیری از تداخل اجراست:


< div class='safe-content' >
    <p>پیام کاربر به صورت متنی و بدون خطر اجرا نمایش داده می‌شود.</p>
< / div >

نتیجه‌گیری

امنیت پروژه شما به عنوان یک برنامه‌نویس حرفه‌ای، وابسته به چگونگی برخورد شما با ورودی‌هاست. با ترکیب توابع پاک‌سازی PHP و رعایت اصول ایمن‌سازی گوگل، امنیت وب‌سایت خود را تا ۹۹٪ در برابر حملات معمول کلاینت-سرور تضمین کنید.


پیشنمایش

پرسش و پاسخ

نظری یافت نشد

مطالب مشابه

آموزش ساخت یک برنامه ساده با Fetch API در جاوا اسکریپت: راهنمای گام به گام
1403/08/01 20:16

آموزش ساخت یک برنامه ساده با Fetch API در جاوا اسکریپت: راهنمای گام به گام

مطالعه بیشتر
آموزش کامل کار با fopen، سطوح دسترسی و حذف فایل در PHP
1405/05/04 23:28

آموزش کامل کار با fopen، سطوح دسترسی و حذف فایل در PHP

مطالعه بیشتر
آموزش جامع اعتبارسنجی اطلاعات فرم در PHP طبق استانداردهای امنیتی گوگل
1405/04/27 22:17

آموزش جامع اعتبارسنجی اطلاعات فرم در PHP طبق استانداردهای امنیتی گوگل

مطالعه بیشتر
آموزش اضافه کردن ویدئو و صدا به وب‌سایت: نحوه استفاده از تگ‌های video و audio در HTML
1402/05/23 23:10

آموزش اضافه کردن ویدئو و صدا به وب‌سایت: نحوه استفاده از تگ‌های video و audio در HTML

مطالعه بیشتر
استفاده از Viewports و Viewport Units در CSS: طراحی واکنش‌گرا با vw، vh، vmin و vmax
1403/08/16 22:30

استفاده از Viewports و Viewport Units در CSS: طراحی واکنش‌گرا با vw، vh، vmin و vmax

مطالعه بیشتر
آموزش ایجاد یک پروژه ساده React: شروع کار و ساختاردهی کامپوننت‌ها
1402/06/28 23:04

آموزش ایجاد یک پروژه ساده React: شروع کار و ساختاردهی کامپوننت‌ها

مطالعه بیشتر
آموزش جامع کوکی (Cookie) در PHP + مدیریت اصولی و امنیت آن بر اساس استاندارد گوگل
1405/05/01 20:10

آموزش جامع کوکی (Cookie) در PHP + مدیریت اصولی و امنیت آن بر اساس استاندارد گوگل

مطالعه بیشتر
آموزش جامع ساخت فرم ثبت‌نام کاربران با PHP و MySQL طبق اصول امنیتی گوگل
1405/05/13 21:34

آموزش جامع ساخت فرم ثبت‌نام کاربران با PHP و MySQL طبق اصول امنیتی گوگل

مطالعه بیشتر
آموزش آپدیت اطلاعات در دیتابیس به روش امن و استاندارد (Update Query)
1405/05/13 21:12

آموزش آپدیت اطلاعات در دیتابیس به روش امن و استاندارد (Update Query)

مطالعه بیشتر
آموزش کامنت‌ها و کاراکترهای خاص در HTML و CSS: نحوه استفاده و مدیریت
1402/05/23 00:08

آموزش کامنت‌ها و کاراکترهای خاص در HTML و CSS: نحوه استفاده و مدیریت

مطالعه بیشتر
آموزش ساخت Toggle Switch با CSS: طراحی دکمه‌های تغییر وضعیت جذاب و واکنش‌گرا
1403/08/16 22:20

آموزش ساخت Toggle Switch با CSS: طراحی دکمه‌های تغییر وضعیت جذاب و واکنش‌گرا

مطالعه بیشتر
آموزش کامنت‌گذاری در PHP بر اساس استاندارد گوگل و Clean Code
1405/03/21 01:15

آموزش کامنت‌گذاری در PHP بر اساس استاندارد گوگل و Clean Code

مطالعه بیشتر

تمامی حقوق معتلق به ناشر سایت است و کپی از آن پیگرد قانونی دارد