Dizin gezinme (ARCH6103)
Anahtar ruby.security.path-traversal · Önem error · Kategori security · CWE CWE-22
Dosya yolunu güvenilmeyen girdiden normalize etmeden ve sınırlamadan kurmak, saldırganın hedef dizinin dışına (../) çıkıp keyfi dosyalara erişmesine olanak tanır.
Hatalı
Bölüm başlığı “Hatalı”def read(name) File.read(File.join("/var/data", name))enddef read(name) base = File.expand_path("/var/data") path = File.expand_path(File.join(base, name)) raise "invalid path" unless path.start_with?("#{base}/") File.read(path)endDüzeltme
Bölüm başlığı “Düzeltme”Yolu çözümleyip normalize edin ve sonucun izin verilen kök dizinin içinde kaldığını doğrulayın.