CodeShot
API Security1 دقیقه مطالعه

امنیت API یعنی چه؟

مجموعه‌ای از اصول برای محافظت از یک API در برابر دسترسی غیرمجاز، سوءاستفاده و افشای داده — فراتر از فقط Authentication.

چرا مهم است؟

APIهای امروزی مستقیماً توسط موبایل، فرانت‌اند و سرویس‌های دیگر مصرف می‌شوند و اغلب هدف مستقیم حمله‌اند؛ امنیت API فقط چک‌کردن توکن نیست، لایه‌های مختلفی دارد.

لایه‌های کلیدی امنیت API

  • Authentication/Authorization: بررسی هویت (JWT/OAuth2) و بررسی دسترسی روی هر Endpoint.
  • Rate Limiting: جلوگیری از سوءاستفاده یا حمله Brute-Force با محدودکردن تعداد درخواست در بازه زمانی.
  • Input Validation: اعتبارسنجی هر پارامتر ورودی، حتی در APIهای داخلی.
  • کمترین داده لازم در پاسخ (Least Data Exposure): فقط فیلدهایی که کلاینت واقعاً نیاز دارد را برگردانید، نه کل مدل دیتابیس.

مثال: Rate Limiting در ASP.NET Core

builder.Services.AddRateLimiter(options =>
    options.AddFixedWindowLimiter("api", opt =>
    {
        opt.PermitLimit = 100;
        opt.Window = TimeSpan.FromMinutes(1);
    }));

app.UseRateLimiter();
app.MapGet("/api/orders", GetOrders).RequireRateLimiting("api");

اشتباه رایج

❌ برگرداندن کل Entity دیتابیس (شامل Hash رمز عبور یا فیلدهای داخلی) مستقیم به‌عنوان پاسخ API — همیشه از DTO مشخص استفاده کنید، نه Serialize مستقیم Entity.

منبع و مطالعه بیشتر

خلاصه

امنیت API چند لایه دارد: Authentication/Authorization، Rate Limiting، اعتبارسنجی ورودی و بازگرداندن حداقل داده لازم با DTO مشخص، نه خود Entity دیتابیس. مرجع کامل: OWASP API Security Top 10.

این مطلب مفید بود؟
نشان کردن
مشاهده در Concept Hub ←