Dizin geçişi (ARCH2103)
Anahtar python.security.path-traversal · Önem error · Kategori security · CWE CWE-22
Dosya yolunu güvenilmeyen girdiden normalize etmeden oluşturmak, saldırganın ../ ile hedef dizin dışına çıkıp keyfi dosyalara erişmesine olanak tanır.
Hatalı
Bölüm başlığı “Hatalı”import os
def read_file(name): with open(os.path.join("/var/data", name)) as f: return f.read()import os
BASE = "/var/data"
def read_file(name): path = os.path.realpath(os.path.join(BASE, name)) if not path.startswith(BASE + os.sep): raise ValueError("invalid path") with open(path) as f: return f.read()Düzeltme
Bölüm başlığı “Düzeltme”Yolu normalize edin ve sonucun izin verilen kök dizin içinde kaldığını doğrulayın.