کلید مجازی تبادل K.M.T کلید مجازی تبادل K.M.T KMT · CORE
EN
درخواست مشاوره

امنیت وب‌اپلیکیشن و API بر اساس OWASP

امنیت وب‌اپلیکیشن و API بر اساس OWASP

فهرست‌های OWASP Top 10 برای وب و OWASP API Security Top 10 مرجع جهانی رایج‌ترین و خطرناک‌ترین ضعف‌های امنیتی نرم‌افزار هستند. در ادامه مهم‌ترین موارد را با رویکرد عملی مرور می‌کنیم.

۱. کنترل دسترسی شکسته

شایع‌ترین ضعف: کاربر با تغییر یک شناسه در آدرس به داده کاربر دیگر دسترسی پیدا می‌کند (IDOR/BOLA).

// ناامن
GET /api/orders/1052

// امن: همیشه مالکیت را در سرور بررسی کنید
$order = auth()->user()->orders()->findOrFail($id);

۲. خطاهای رمزنگاری

  • همه ترافیک فقط روی HTTPS با HSTS
  • ذخیره گذرواژه با الگوریتم‌های کند و نمک‌دار مانند bcrypt یا Argon2
  • عدم نگهداری داده حساس بدون نیاز

۳. تزریق (Injection)

SQL Injection، Command Injection و XSS همچنان رایج‌اند. از کوئری‌های پارامتری، ORM، خروجی Escape‌شده و Content Security Policy استفاده کنید.

۴. طراحی ناامن

برخی ضعف‌ها با کدنویسی بهتر حل نمی‌شوند و ریشه در طراحی دارند؛ مثلاً نبود محدودیت تعداد تلاش در بازیابی رمز. مدل تهدید را پیش از توسعه انجام دهید.

۵. پیکربندی نادرست امنیتی

  • حالت Debug در محیط عملیاتی خاموش باشد.
  • فایل‌های پیکربندی و محیط (مثل .env) از طریق وب قابل دسترسی نباشند.
  • هدرهای امنیتی (CSP، X-Frame-Options، X-Content-Type-Options) تنظیم شوند.
  • حساب‌ها و گذرواژه‌های پیش‌فرض حذف شوند.

۶. اجزای آسیب‌پذیر و قدیمی

کتابخانه‌ها و فریم‌ورک‌ها را به‌روز نگه دارید و وابستگی‌ها را به‌طور خودکار برای آسیب‌پذیری‌های شناخته‌شده بررسی کنید.

۷. ضعف احراز هویت

  • احراز هویت چندعاملی برای حساب‌های حساس
  • محدودیت نرخ ورود و قفل موقت
  • مدیریت امن نشست: کوکی‌های HttpOnly، Secure و SameSite

ریسک‌های ویژه API

  • مصرف بی‌حد منابع: بدون Rate Limiting، API قربانی سوءاستفاده و هزینه می‌شود.
  • Mass Assignment: فقط فیلدهای مجاز را از ورودی بپذیرید.
  • افشای بیش از حد داده: پاسخ API فقط فیلدهای لازم را برگرداند، نه کل رکورد.
  • مدیریت ضعیف موجودی API: نسخه‌های قدیمی و Endpointهای آزمایشی را شناسایی و خاموش کنید.

۸. لاگ و پایش ناکافی

بدون لاگ مناسب، نفوذ ممکن است ماه‌ها کشف نشود. رویدادهای ورود، تغییر دسترسی و خطاهای غیرعادی را ثبت و پایش کنید.

امنیت اپلیکیشن باید بخشی از چرخه توسعه باشد، نه مرحله‌ای در پایان آن.
اشتراک‌گذاری: 𝕏