API shartnomasi
Endpoint uchun metod, kirish sxemasi, chiqish sxemasi, status va ruxsat qoidasi belgilanadi. Faqat brauzer formasida required qo‘yish yetmaydi; istalgan klient noto‘g‘ri JSON yuborishi mumkin. Server tur, uzunlik, qiymat va munosabatni tekshiradi.
Allowlist modeli
Kutilgan maydonlarni tanlab oling. Mijoz yuborgan is_admin yoki user_id’ni modelga ommaviy yozish mass assignment keltiradi. Foydalanuvchini sessiya orqali aniqlang. Filtrlangan to‘g‘ri maydon ham o‘zga foydalanuvchining obyektiga yozish huquqini bermaydi.
Resurs chegarasi
Body hajmi, list uzunligi, pagination va urinishlar sonini chegaralang. Tur tekshiruvida bool/int farqini biling. Xatoda sirli obyekt yoki ichki stacktrace’ni qaytarmang. Darsdagi validator faqat title maydonini qabul qiladi.
Python’da ko‘rib chiqamiz
payload = {"title": "Lab report", "is_admin": True, "user_id": 99}
allowed = {"title"}
cleaned = {key: value for key, value in payload.items() if key in allowed}
print(",".join(sorted(cleaned)))Misolni
Mustaqil mashq
Title uchun string, 1–100 uzunlik va bo‘sh bo‘lmaslik tekshiruvini yozing. Noma’lum maydonni rad etish yoki chiqarish siyosatini tushuntiring.