Уязвим ли php код [закрыт]

145
10 ноября 2019, 19:00
<?php
$photo = $_REQUEST['photo'];
move_uploaded_file($_FILES['file']['tmp_name'], "photos/".$photo .".gif");
?>

Уязвим ли данный код? Смогут ли обрезать .gif в названии файла и залить веб-шелл? Или можно не беспокоится? Кавычки код пишет в название файла почему-то, хотя фильтра нет.

Answer 1

Старый дбрый веб-сервер апач по умолчанию настраивается так, чтобы исполнять файлы вида file.php.gif, как php.

Для надежности проще всего будет файл переименовывать.

Answer 2

Да, уязвим.

Если в $photo окажется что-то типа ../../../../usr/bin/aaa, то это потенциально опасно.
Ну и в любом случае таким образом можно перезаписать любой gif-файл твоего сайта.

Имеет смысл сделать проверку на текст в $photo и почистить его до имени файла без пути и расширения. Впрочем, с расширением есть нюанс. Мне кажется, что имеет смысл оставлять оригинальное расширение, если оно находится в списке разрешённых.

И ещё: если разрешён svg, то стоит обратить внимание на возможность наличия в нём связей с внешними ресурсами.

READ ALSO
PHP фильтры $_REQUEST

PHP фильтры $_REQUEST

Почему вместо $get нельзя выполнить php код? Фильтров нет, но кавычки отображаются как текстЕсли в $get задать - $a или "

109
Аналог getmicrotime в perl?

Аналог getmicrotime в perl?

В php есть такая функция как microtimeТакже его доп

110
Как работает метод send()?

Как работает метод send()?

В документации написано, что он передает значение в генераторМожете подробнее описать, как это происходит? Непонятно, что проверяет цикл...

132
Как ловить фатальные ошибки?

Как ловить фатальные ошибки?

Какой класс исключений использовать для перехвата фатальных ошибок, например, при попытке вывода несуществующей переменной? Есть общее...

110