İçeriğe geç

Yol gezinme (ARCH4103)

Anahtar java.security.path-traversal · Önem error · Kategori security · CWE CWE-22

Dosya yolunu güvenilmeyen girdiden normalleştirme ve sınırlandırma yapmadan oluşturmak, ../ dizileriyle hedef dizinin dışındaki dosyalara erişime olanak tanır.

String name = request.getParameter("file");
File f = new File("/var/data/" + name);
return Files.readAllBytes(f.toPath());
Path base = Paths.get("/var/data").toRealPath();
Path target = base.resolve(name).normalize();
if (!target.startsWith(base)) throw new SecurityException();
return Files.readAllBytes(target);

Yolu normalleştirin ve çözümlenmiş hedefin temel dizin içinde kaldığını startsWith ile doğrulayın.