در حال بارگذاری...
تست جامع امنیت APIهای RESTful شامل authentication، authorization، validation و مدیریت خطا. (محتوای آموزشی تکمیلی — خارج از WSTG v4.2 رسمی)
اهداف این درس
REST (Representational State Transfer) یک معماری برای طراحی APIهای وب است. REST APIها از متدهای HTTP (GET, POST, PUT, DELETE) برای عملیات CRUD استفاده میکنند و معمولاً دادهها را بهصورت JSON ارسال و دریافت میکنند.
APIای که از اصول معماری REST پیروی میکند و از متدهای HTTP و URLهای منابع استفاده میکند.
| رتبه | آسیبپذیری | توضیح |
|---|---|---|
| API1 | Broken Object Level Authorization | دسترسی غیرمجاز به اشیاء |
| API2 | Broken Authentication | ضعف در مکانیزمهای احراز هویت |
| API3 | Broken Object Property Level Authorization | دسترسی غیرمجاز به خصوصیات |
| API4 | Unrestricted Resource Consumption | عدم محدودیت مصرف منابع |
| API5 | Broken Function Level Authorization | دسترسی غیرمجاز به توابع |
| API6 | Unrestricted Access to Sensitive Business Flows | دسترسی نامحدود به فرآیندهای حساس |
| API7 | Server Side Request Forgery | جعل درخواست سمت سرور |
| API8 | Security Misconfiguration | پیکربندی امنیتی نادرست |
| API9 | Improper Inventory Management | مدیریت نادرست موجودی API |
| API10 | Unsafe Consumption of APIs | مصرف ناامن APIها |
رایجترین آسیبپذیری API. مهاجم با تغییر ID در درخواست به دادههای سایر کاربران دسترسی پیدا میکند.
1# درخواست عادی2curl -H "Authorization: Bearer token_user1" \3 https://target.com/api/users/123/orders45# تغییر ID برای دسترسی به دادههای کاربر دیگر6curl -H "Authorization: Bearer token_user1" \7 https://target.com/api/users/456/ordersAPI اطلاعات بیشتر از حد نیاز را برمیگرداند.
Excessive Data Exposure
API کاربر اطلاعات حساس مثل رمز عبور hash شده، ایمیل داخلی و شماره تلفن را برمیگرداند.
1// پاسخ ناامن2{3 "id": 123,4 "name": "Ali",5 "email": "ali@internal.com",6 "password_hash": "$2b$12$...",7 "phone": "+989121234567",8 "role": "admin"9}ورودیهای API ممکن است در query پایگاه داده، دستورات سیستمی یا سایر مفسرها استفاده شوند.
هشدار
هرگز به authentication سمت کلاینت اعتماد نکنید. تمام بررسیهای امنیتی باید سمت سرور انجام شوند.
توصیه عملی
از ابزار Postman برای تست و مستندسازی APIها استفاده کنید. مجموعههای تست امنیتی Postman میتوانند به شما کمک کنند.
APIها باید از اصول RESTful پیروی کنند و از HTTP methods بهدرستی استفاده کنند.
هر endpoint باید authentication و authorization مستقل داشته باشد.
ورودیها باید در سمت سرور اعتبارسنجی شوند.
پاسخهای خطا نباید اطلاعات حساس فاش کنند.
BOLA در REST API چیست؟
مهمترین آسیبپذیریهای REST API کدامند؟
Broken Object Level Authorization (BOLA)، Broken Authentication، Excessive Data Exposure، Lack of Resources Rate Limiting و Injection از مهمترین آسیبپذیریها هستند.
BOLA چیست؟
Broken Object Level Authorization آسیبپذیری است که در آن مهاجم میتواند با تغییر ID در درخواست، به دادههای سایر کاربران دسترسی پیدا کند.
چرا APIها باید از HTTPS استفاده کنند؟
HTTPS ارتباط را رمزنگاری میکند و از شنود و دستکاری دادهها جلوگیری میکند. بدون HTTPS، tokenها و دادههای حساس قابل سرقت هستند.