İçeriğe geç

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.

def compute(request):
expr = request.GET["expr"]
return eval(expr)
import ast
def compute(request):
expr = request.GET["expr"]
return ast.literal_eval(expr)

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.