/
spirzen
/
it-code-examples
Обзор
Документация
Войти
/
spirzen
/
it-code-examples
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
examples/php/php-507-20-018/main.php
28 строк
1 KB
Spirzen
Code migration pack
09 июн 2026, 01:41
09 июн 2026, 01:41
cebc284
Код
Авторство
О чём код?
<?php $uploadDir = '/var/www/html/uploads/'; $userFilename = $_GET['file'] ?? ''; // Нормализация пути пользователя // realpath() разрешает относительные пути и убирает ".." $safePath = realpath($userFilename); // Проверка того, что путь находится внутри разрешенной директории if ($safePath === false || strpos($safePath, realpath($uploadDir)) !== 0) { die("Доступ запрещен: попытка выхода за пределы директорий загрузки.\n"); } // Дополнительная фильтрация недопустимых символов в имени файла $cleanName = basename($userFilename); if (!preg_match('/^[a-zA-Z0-9._-]+$/', $cleanName)) { die("Недопустимые символы в имени файла.\n"); } // Использование безопасного полного пути $finalPath = $uploadDir . $cleanName; if (is_file($finalPath)) { echo "Файл найден и доступен для обработки.\n"; } else { echo "Файл не найден.\n"; } ?>