Dizin gezinme (ARCH7103)
Anahtar php.security.path-traversal · Önem error · Kategori security · CWE CWE-22
Dosya yolunu kullanıcı girdisinden normalleştirmeden oluşturmak, saldırganların ../ dizileriyle hedef dizinin dışına çıkıp keyfi dosyalara erişmesine olanak tanır. Çözümlenmiş yolun temel dizin içinde kaldığını doğrulamak gerekir.
Hatalı
Bölüm başlığı “Hatalı”<?php$file = $_GET['file'];echo file_get_contents("/var/www/uploads/$file");<?php$base = '/var/www/uploads';$path = realpath($base . '/' . $_GET['file']);if ($path === false || !str_starts_with($path, $base . '/')) { http_response_code(400); exit;}echo file_get_contents($path);Düzeltme
Bölüm başlığı “Düzeltme”Yolu realpath() ile çözümleyin ve sonucun izin verilen temel dizinin içinde kaldığını doğrulayın.