راهنمای امنیت¶
بهترین شیوههای امنیتی برای اپلیکیشنهای لیچ.
چکلیست سریع¶
- [ ] فعال کردن middleware هدرهای امنیتی
- [ ] استفاده از HTTPS در تولید
- [ ] ذخیره secrets در متغیرهای محیطی
- [ ] اعتبارسنجی همه ورودیها با Pydantic
- [ ] فعال کردن rate limiting
- [ ] استفاده از کوئریهای parameterized
فعال کردن Middleware امنیتی¶
متغیرهای محیطی¶
هرگز secrets را hardcode نکنید:
اعتبارسنجی ورودی¶
همیشه از DTOهای Pydantic استفاده کنید:
from pydantic import BaseModel, Field, EmailStr
class CreateUserRequest(BaseModel):
email: EmailStr
password: str = Field(..., min_length=8)
جلوگیری از SQL Injection¶
از ORM یا کوئریهای parameterized استفاده کنید:
# ❌ بد
query = f"SELECT * FROM users WHERE email = '{email}'"
# ✅ خوب
query = select(User).where(User.email == email)
Authorization با Policies¶
from internal.policies.article_policy import ArticlePolicy
if not ArticlePolicy().can_edit(user, article):
raise HTTPException(403, "Forbidden")
تنظیم CORS¶
در main.py: