Dinamik kod çalıştırma (ARCH2131)
Anahtar python.security.dynamic-code-execution · Önem critical · Kategori security · CWE CWE-95
eval ve exec, bir metni çalışma zamanında Python kodu olarak çalıştırır. Girdi güvenilmez ise bu, en geniş uzaktan kod çalıştırma (RCE) primitifidir.
Hatalı
Bölüm başlığı “Hatalı”def compute(request): expr = request.GET["expr"] return eval(expr)import ast
def compute(request): expr = request.GET["expr"] return ast.literal_eval(expr)Düzeltme
Bölüm başlığı “Düzeltme”eval/exec yerine güvenli ayrıştırıcılar (ast.literal_eval) veya açık, sınırlı bir komut eşlemesi kullanın.