безопасность — управление путями / проверка входных данных

Я выполнил тест 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/,

Ниже вы найдете информацию об этом:

Описание: Разрешение пользовательского ввода управлять путями, используемыми в операциях с файловой системой, может позволить злоумышленнику получить доступ или изменить иным образом защищенные системные ресурсы.

Конкретный сценарий:

Ошибки манипулирования путями возникают, когда выполняются следующие два условия:

  1. Злоумышленник может указать путь, используемый в операции на
    файловая система.

  2. Указав ресурс, злоумышленник получает возможность, которая
    иначе не будет разрешено.

Например, программа может дать злоумышленнику возможность перезаписать указанный файл или запустить с конфигурацией, контролируемой злоумышленником.

Как я могу предотвратить манипулирование путем для этого конкретного сценария?

2

Решение

Там нет проблем с contacts_load/, Пользователь не может изменить его.

Я рекомендую вам продезинфицировать $_FILES["file"]["name"] хоть. Этот ответ должно быть полезно.

1

Другие решения

.файл 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
1

По вопросам рекламы [email protected]