İçeriğe geç

Güvenlik Denetimi İçin Assert (ARCH4133)

Anahtar java.security.assert-for-auth-control · Önem warning · Kategori security · CWE CWE-617

Yetki denetimini assert ile yapmak güvensizdir; JVM -da (assertions disabled) ile çalıştığında ifade hiç yürütülmez ve denetim sessizce atlanır. Güvenlik kararlarını her zaman normal kontrol akışıyla zorlayın.

public void deleteAccount(User user, Account account) {
assert user.isAdmin() : "yetkisiz"; // üretimde -da ile atlanır
repository.delete(account);
}
public void deleteAccount(User user, Account account) {
if (!user.isAdmin()) {
throw new AccessDeniedException("yetkisiz");
}
repository.delete(account);
}

Yetki denetimini assert yerine açık if koşulu ve istisnayla zorlayın.