Я выполнил тест Grey Box Assessment для приложения, которое я разработал, и у меня есть некоторые уязвимости, в частности, манипуляции с путями в категории «Проверка ввода».
У меня есть в моем коде:
if (move_uploaded_file($_FILES["file"]["tmp_name"],"contacts_load/" . $fileName)) {
if ($import = fopen ("contacts_load/" . $fileName,"r")) {
а также:
unlink("contacts_load/" . $fileName);
Проблема в contacts_load/
,
Ниже вы найдете информацию об этом:
Описание: Разрешение пользовательского ввода управлять путями, используемыми в операциях с файловой системой, может позволить злоумышленнику получить доступ или изменить иным образом защищенные системные ресурсы.
Конкретный сценарий:
Ошибки манипулирования путями возникают, когда выполняются следующие два условия:
Злоумышленник может указать путь, используемый в операции на
файловая система.Указав ресурс, злоумышленник получает возможность, которая
иначе не будет разрешено.Например, программа может дать злоумышленнику возможность перезаписать указанный файл или запустить с конфигурацией, контролируемой злоумышленником.
Как я могу предотвратить манипулирование путем для этого конкретного сценария?
Там нет проблем с contacts_load/
, Пользователь не может изменить его.
Я рекомендую вам продезинфицировать $_FILES["file"]["name"]
хоть. Этот ответ должно быть полезно.
.файл htaccess?
# Protect files and directories from prying eyes.
<FilesMatch "\.(engine|inc|info|install|make|module|profile|test|po|sh|.*sql|theme|tpl(\.php)?|xtmpl)(~|\.sw[op]|\.bak|\.orig|\.save)?$|^(\..*|Entries.*|Repository|Root|Tag|Template)$|^#.*#$|\.php(~|\.sw[op]|\.bak|\.orig\.save)$">
Order allow,deny
</FilesMatch>
# Don't show directory listings for URLs which map to a directory.
Options -Indexes