پرش به مطلب اصلی

قوانین Security

هیچ endpoint، action یا view نباید صرفا به frontend یا پنهان بودن لینک اعتماد کند.

Authorization

  • authorization برای actionهای حساس الزامی است
  • permission باید نزدیک به endpoint یا action قابل ردیابی باشد
  • دسترسی داده باید در query، policy یا access layer enforce شود
  • تغییر permission باید review جداگانه بگیرد

Input و Upload

  • ورودی frontend قابل اعتماد نیست
  • فایل upload شده باید type، size و path کنترل‌شده داشته باشد
  • نام فایل و path نباید از input خام ساخته شود
  • محتوای قابل نمایش باید escape شود

داده حساس

  • داده حساس در response برنگردد
  • secretها فقط از env یا secret manager خوانده شوند
  • secret در config commit نشود
  • password، token، national id و اطلاعات مالی نباید log شوند

موارد blocker

  • نبود permission check
  • expose شدن stack trace
  • اعتماد به hidden input
  • direct object reference بدون کنترل دسترسی
  • ذخیره secret در repository