SQLMap یکی از قدرتمندترین و محبوب‌ترین ابزارهای خودکار برای شناسایی و بهره‌برداری از آسیب‌پذیری‌های SQL Injection است. هکرها و متخصصان امنیت به طور گسترده از این ابزار برای اسکن وب‌سایت‌ها و پیدا کردن نقاط ضعف در پایگاه داده استفاده می‌کنند. بنابراین، محافظت از وب اپلیکیشن در برابر چنین ابزارهایی اولین و یکی از مهم‌ترین قدم‌ها برای تأمین امنیت است.

در این آموزش، یک راه حل بسیار ساده، سبک و کارآمد را با استفاده از یک فایل PHP معرفی می‌کنیم. این اسکریپت به عنوان یک فایروال وب اپلیکیشن (WAF) کوچک عمل می‌کند و بدون نیاز به تنظیمات پیچیده، از وب‌سایت شما در برابر اسکن‌های SQLMap محافظت می‌کند.

ایده اصلی و نحوه عملکرد

ایده اصلی این است که درخواست‌های ورودی به سرور را بررسی کرده و الگوهای مشخصی که مربوط به ابزار SQLMap است را شناسایی کنیم. خوشبختانه، SQLMap هنگام ارسال درخواست‌ها، یک ردپای مشخص از خود به جای می‌گذارد:

  • **شناسایی User-Agent:** ابزار SQLMap هنگام ارسال درخواست‌ها، یک User-Agent خاص در هدر HTTP قرار می‌دهد که معمولاً شامل کلمه "sqlmap" است.
  • **بررسی و مسدودسازی:** اسکریپت PHP ما User-Agent هر درخواستی که به سرور ارسال می‌شود را چک می‌کند. اگر کلمه "sqlmap" در آن پیدا شود، اسکریپت IP مهاجم را شناسایی کرده و آن را در یک فایل متنی به نام blacklist.txt ذخیره می‌کند.
  • **دفاع دائمی:** از آن پس، تمام درخواست‌های بعدی که از IP‌های موجود در لیست سیاه ارسال شوند، به طور کامل مسدود شده و کاربر با یک پیام خطای 403 (Forbidden) مواجه می‌شود.

ویژگی‌های کلیدی این روش

این اسکریپت ساده مزایای قابل توجهی دارد:

  • **سبک و سریع:** این کد هیچ وابستگی خارجی ندارد و با حداقل بار پردازشی روی سرور اجرا می‌شود.
  • **نصب و راه‌اندازی آسان:** کافیست این فایل PHP را در ابتدای تمام صفحات پروژه خود (مثلاً در یک فایل `header.php` یا `init.php`) با دستور include فراخوانی کنید.
  • **مسدودسازی خودکار و هوشمند:** به محض شناسایی اولین تلاش برای اسکن، IP مهاجم برای همیشه بلاک می‌شود و دیگر شانسی برای تست آسیب‌پذیری‌های دیگر نخواهد داشت.

مشاهده کد کامل و مقاله اصلی

این روش یک لایه دفاعی اولیه اما بسیار مؤثر در برابر اسکن‌های خودکار و حملات SQL Injection است. برای مشاهده کد کامل این اسکریپت و مطالعه توضیحات فنی دقیق‌تر، می‌توانید به مقاله اصلی من در پلتفرم مدیوم مراجعه کنید.