انواع حملات رایج در وب‌ سایت‌ها

انواع حملات رایج در وب‌ سایت‌ها

۱. تزریق (Injection)

  • SQL Injection (SQLi)
    مهاجم ورودی‌ها را طوری دست‌کاری می‌کند که کوئری‌های پایگاه‌داده تغییر کنند (مثلاً '; DROP TABLE users; --).
    علائم: رفتار غیرمعمول پایگاه‌داده، خطاهای SQL نمایشی، دسترسی غیرمجاز به داده‌ها.
    پیشگیری: استفاده از prepared statements / parameterized queries، ORM ایمن، اعتبارسنجی و پاک‌سازی ورودی‌ها، کمترین سطح دسترسی DB.

  • Command Injection / OS Injection
    اجرای دستورات سیستم عامل از طریق پارامترهای ورودی.
    پیشگیری: هرگز ورودی کاربر را داخل دستورات shell نگذارید، از توابع امن یا کتابخانه‌ها استفاده کنید، صیقل‌دهی/سفید‌فهرست.

۲. Cross-Site Scripting (XSS)

  • Stored XSS: کد مخرب در سرور ذخیره و به کاربران نمایش داده می‌شود (مثلاً در کامنت‌ها).

  • Reflected XSS: کد مخرب در پاسخ فوری (مثلاً پارامتر URL) بازتاب می‌شود.
    علائم: نمایش اسکریپت‌های نامعمول، درخواست‌های خارجی ناخواسته، عملیات ناگهانی UI.
    پیشگیری: خروجی‌سازی (output encoding/escaping) برای HTML/JS/CSS، Content Security Policy (CSP)، حذف/محدود کردن HTML ورودی، استفاده از کتابخانه‌های تمیزسازی (sanitize).

۳. Cross-Site Request Forgery (CSRF)

مهاجم کاربر لاگین‌شده را به انجام عملی ناخواسته وادار می‌کند (مثلاً با یک فرم مخرب).
پیشگیری: توکن‌های CSRF (synchronizer token pattern)، بررسی Origin/Referer، استفاده از SameSite برای کوکی‌ها، احراز هویت دو مرحله‌ای برای عملیات حساس.

۴. Broken Authentication & Session Hijacking

  • Credential stuffing / brute force: استفاده از ترکیب‌های رمز عبور یا لیست‌های نشت‌شده.

  • Session fixation / session hijack: ربودن یا حدس زدن شناسه جلسه.
    پیشگیری: سیاست پسورد قوی، rate limiting، lockout موقت، MFA، امن‌سازی کوکی‌ها (HttpOnly, Secure, SameSite)، تجدید session ID پس از لاگین.

۵. Remote / Local File Inclusion (RFI/LFI) و Directory Traversal

  • LFI/RFI: بارگذاری یا اجرای فایل‌های محلی/راه دور از ورودی کنترل نشده.

  • Directory Traversal: دسترسی به فایل‌های خارج از دایرکتوری مجاز (../../etc/passwd).
    پیشگیری: سفیدفهرست نام فایل‌ها، محدود کردن مسیرها با canonicalization، غیرفعال کردن include از ورودی کاربر.

۶. Remote Code Execution (RCE)

اجرای کد دلخواه روی سرور — از خطرناک‌ترین حملات.
پیشگیری: عدم اجرای کد از ورودی کاربر، بروزرسانی منظم، محدود کردن دسترسی‌ها، فیلتر ورودی‌ها و بررسی فایل‌های آپلود شده.

۷. Insecure Direct Object References (IDOR)

دسترسی مستقیم به منابع با تغییر شناسه‌ها (مثلاً تغییر order_id=123 به 124).
پیشگیری: بررسی مالکیت/مجوز روی سرور، استفاده از شناسه‌های غیرقابل حدس (UUID یا token) و کنترل‌های دسترسی سروری.

۸. XML External Entity (XXE)

پردازش XML مخرب که می‌تواند فایل‌های داخلی را بخواند یا درخواست‌های خارجی بفرستد.
پیشگیری: غیرفعال کردن entity resolution در پردازشگر XML، استفاده از JSON اگر امکان دارد.

۹. Server-Side Request Forgery (SSRF)

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

۱۰. Insecure Deserialization

دسریالایز کردن داده‌های ناامن که منجر به اجرای کد یا افزایش مجوز می‌شود.
پیشگیری: از فرمت‌های امن‌تر استفاده کنید، امضا/رمزنگاری داده‌ها، بررسی نوع/سازه داده پیش از دسریالایز.

۱۱. فایل‌های آپلودی ناامن

آپلود فایل‌های اجرایی یا با پسوند فریبنده می‌تواند منجر به RCE یا اطلاعات لو رفته شود.
پیشگیری: بررسی نوع MIME و محتوای فایل، تغییر نام و ذخیره‌سازی خارج از ریشه وب، محدود کردن پسوندها، اسکن آنتی‌ویروس.

۱۲. Denial of Service (DoS) / Distributed DoS (DDoS)

مصرف منابع سرویس تا وقتی پاسخ‌دهی متوقف شود.
پیشگیری: rate limiting، CDN و WAF، auto-scaling، فیلتر ترافیک مشکوک، استفاده از سرویس‌های ضد-DDoS.

۱۳. Man-In-The-Middle (MITM) و sniffing

استراق سمع ترافیک یا تغییر آن بین کاربر و سرور.
پیشگیری: TLS/HTTPS قوی، HSTS، جلوگیری از mixed content، استفاده از الگوریتم‌های رمزنگاری استاندارد.

۱۴. Clickjacking

بارگذاری سایت در iframe تا کاربر به‌طور ناخواسته عملی انجام دهد.
پیشگیری: ارسال هدر X-Frame-Options: DENY یا Content-Security-Policy: frame-ancestors 'none'.

۱۵. Supply-chain attacks (زنجیره تأمین)

نفوذ به کتابخانه‌ها، پکیج‌ها یا سرویس‌های شخص ثالث برای تأثیر روی سایت.
پیشگیری: بررسی امضا و منابع، محدود کردن دسترسی‌های third-party، اسکن وابستگی‌ها، بروزرسانی منظم.

۱۶. Business-logic attacks

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


اولویت‌بندی: چه چیزهایی را ابتدا ببندیم؟

۱. RCE / Broken authentication / Injection (SQLi) — خیلی بحرانی
۲. XSS / CSRF / Sensitive data exposure — خیلی مهم
۳. File upload / SSRF / IDOR — مهم
۴. DoS / Supply-chain / Business logic — بسته به سناریو


چک‌لیست سریع برای توسعه‌دهنده/اپراتور

  • همه ورودی‌ها را اعتبارسنجی کن (server-side).

  • از prepared statements برای DB استفاده کن.

  • خروجی‌ها را برای HTML/JS/CSS و URL escape کن.

  • از HTTPS (TLS) همیشه استفاده کن؛ HSTS فعال شود.

  • کوکی‌ها: HttpOnly, Secure, SameSite.

  • توکن CSRF در فرم‌ها و درخواست‌های state-changing.

  • پیاده‌سازی logging و مانیتورینگ (WAF، IDS/IPS)، و alert برای رفتار غیرمعمول.

  • MFA برای حساب‌های مدیریتی و حساس.

  • محدود کردن آپلود فایل و ذخیره در خارج از webroot.

  • به‌روزرسانی مرتب بسته‌ها و سیستم‌عامل؛ اسکن وابستگی‌ها (SCA).

  • تست نفوذ دورهای منظم (automated + manual / pentest).

  • بکاپ‌گیری منظم و برنامه بازیابی حادثه.


ابزارها/فریمورک‌ها و تکنیک‌های مفید

  • WAF (مثلاً ModSecurity یا سرویس‌های CDN مانند Cloudflare)

  • CSP برای کاهش XSS

  • Rate limiting و IP reputation services

  • Static/Dynamic analysis (SAST/DAST) و Dependency Scanners (Snyk, Dependabot)

  • SIEM و لاگ‌سنترالایز (ELK, Splunk) برای مانیتورینگ

رضا فروزان
رضا فروزان

علاقه‌ی من به تکنولوژی از سال‌های نخستین تحصیلم آغاز شد و به مرور، به یک مسیر حرفه‌ای تبدیل شد. در این مسیر، با پروژه‌های متنوعی در زمینه‌های طراحی وب‌سایت، تولید نرم‌افزار، امنیت داده‌ها و پیاده‌سازی شبکه‌های سازمانی همکاری داشته‌ام و همواره تلاش کرده‌ام تا هر پروژه را با بالاترین کیفیت، خلاقیت و دقت اجرا کنم

مقالات مرتبط
پاسخ دهید

آدرس ایمیل شما منتشر نخواهد شد.قسمتهای مورد نیاز علامت گذاری شده اند *