Güvenlik denetiminde assert kullanımı (ARCH2133)
Anahtar python.security.assert-for-auth-control · Önem warning · Kategori security · CWE CWE-617
Python assert ifadeleri -O (optimize) bayrağıyla tamamen kaldırılır. Yetkilendirme veya erişim denetimini assert ile yapmak, üretimde kontrolün hiç çalışmaması ve yetki atlatma anlamına gelir.
Hatalı
Bölüm başlığı “Hatalı”def delete_account(user, target_id): assert user.is_admin, "yetki yok" db.delete(target_id)def delete_account(user, target_id): if not user.is_admin: raise PermissionError("yetki yok") db.delete(target_id)Düzeltme
Bölüm başlığı “Düzeltme”Güvenlik denetimlerini assert yerine açık if kontrolü ve uygun bir istisna ile uygulayın.