Dinamik metot çağrımı (ARCH2132)
Anahtar python.security.dynamic-method-dispatch · Önem warning · Kategori security · CWE CWE-470
getattr ile çağrılacak metot adını kullanıcı girdisinden almak, saldırganın hiç amaçlanmamış metotları çağırmasına olanak tanır. Bu, beklenmedik davranış ve güvenlik kontrolünün atlanmasına yol açabilir.
Hatalı
Bölüm başlığı “Hatalı”def dispatch(self, request): action = request.GET["action"] return getattr(self, action)()ALLOWED = {"list": "_list", "show": "_show"}
def dispatch(self, request): action = request.GET["action"] method = ALLOWED.get(action) if method is None: raise Http404 return getattr(self, method)()Düzeltme
Bölüm başlığı “Düzeltme”Çağrılabilir metotları açık bir izin listesine bağlayın; ham kullanıcı girdisini doğrudan getattr’a vermeyin.