سیستم مستندات یکپارچه

IOT - Security

امنیت

این بخش فقط لیست فایل نیست؛ کنترل‌های امنیتی قابل مشاهده از روی dependencyها، routeها و فایل‌های auth/permission/guard/secret تحلیل شده‌اند. هرجا شواهد کافی نبوده، وضعیت نیازمند بررسی انسانی باقی مانده است.

کنترل‌های امنیتی شناسایی‌شده

کنترلوضعیتتوضیحشاهد
JWT / Token Authenticationشاهد مستقیم پیدا شدپروژه از token یا guard مرتبط با JWT برای شناسایی کاربر و محافظت از routeها استفاده می‌کند.dependency یا فایل‌های jwt/auth
Authorization / RBACشاهد مستقیم پیدا شدفایل‌های permission، role یا guard نشان می‌دهند که دسترسی فقط بر اساس login نیست و سطح مجوز هم بررسی می‌شود.permission/role/guard files
Audit Loggingشاهد مستقیم پیدا شدرخدادهای امنیتی یا عملیاتی قابل ثبت و بازبینی هستند.audit files/endpoints

جریان امنیتی درخواست

Mermaid sequence diagram - auth/authorization flow

sequenceDiagram
  autonumber
  participant U as کاربر
  participant UI as Next.js UI
  participant API as FastAPI
  participant Dep as Auth Dependency
  participant Store as Data Store
  U->>UI: ورود یا درخواست قابلیت
  UI->>API: ارسال token/request
  API->>Dep: بررسی user، tenant، license و permission
  Dep-->>API: مجوز یا خطای دسترسی
  API->>Store: اجرای عملیات مجاز
  Store-->>UI: پاسخ با داده مجاز

تحلیل ریسک و توصیه‌ها

ریسک‌های زیر از نوع قابلیت‌ها و فایل‌های امنیتی استخراج شده‌اند و برای production باید با تست و تنظیمات runtime کامل شوند.

  • برای هر endpoint حساس، policy دسترسی و تست 401/403 جداگانه ثبت شود.
  • مقادیر env، token، password و connection string فقط با نام متغیر مستند شوند و مقدار واقعی نمایش داده نشود.
  • رخدادهای login، تغییر permission، تغییر تنظیمات و عملیات destructive در audit log قابل ردیابی باشند.
  • برای upload فایل، محدودیت نوع/حجم، مسیر ذخیره‌سازی، مالکیت فایل و scan امنیتی بررسی شود.
  • تنظیمات CORS، CSRF/session یا bearer token در محیط production جدا از تنظیمات local بازبینی شود.

منابع کد امنیتی

  • apps/core-backend/src/modules/auth/auth.controller.ts
  • apps/core-backend/src/modules/auth/auth.module.ts
  • apps/core-backend/src/modules/auth/auth.service.ts
  • apps/core-backend/src/modules/auth/auth.types.ts
  • apps/core-backend/src/modules/auth/current-user.decorator.ts
  • apps/core-backend/src/modules/auth/jwt-auth.guard.ts
  • apps/core-backend/src/modules/auth/public.decorator.ts
  • apps/core-backend/src/modules/auth/roles.decorator.ts
  • apps/core-backend/src/modules/auth/roles.guard.ts
  • apps/web-frontend/components/auth/ExitImpersonationButton.tsx
  • apps/web-frontend/components/auth/ImpersonateElevatorButton.tsx
  • apps/web-frontend/components/auth/LogoutButton.tsx
  • docs/historical-mapping-guardrails.md
  • tests/e2e/auth-and-workflow.spec.mjs