İçeriğe geç

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.

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)

Güvenlik denetimlerini assert yerine açık if kontrolü ve uygun bir istisna ile uygulayın.