قوانین 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