Чтобы избежать LFI и многих других уязвимостей, не следует полагаться на вводимые пользователем данные. Если вам нужно добавить собственные файлы на свой веб-сайт или в код веб-приложения, вам следует использовать белый список разрешенных имен и местоположений файлов. Необходимо убедиться, что ни один из этих файлов не может быть изменен злоумышленником с помощью функций загрузки файлов. Как работает Local File Inclusion? Обычно путь к файлу, который вы хотите открыть, отправляется функцией, которая либо возвращает содержимое файла в виде строки, либо выводит его на текущую веб-страницу, либо включает его в документ и анализирует как часть соответствующего языка. Как определить локальное включение файла? Наиболее эффективным способом обнаружения LFI является использование автоматического сканера уязвимостей. Конечно, такие уязвимости можно обнаружить с помощью ручного тестирования на проникновение, но для этого требуется гораздо больше времени и ресурсов. Типы атак Local File Inclusion:
Включение файлов для анализа интерпретатором языка
Включение файлов, напечатанных на странице
Включение файлов, предлагаемых в качестве загрузок
Защита от атак Local File Inclusion
Советы, позволяющие пользователям безопасно читать или загружать файлы:
Вы должны сохранить свои пути к файлам в защищенной базе данных и назначить каждому из них идентификатор, чтобы пользователи могли видеть их только без просмотра или изменения своего идентификатора.
Вы должны использовать белый список файлов и игнорировать все остальные имена файлов и пути.
Вместо того, чтобы включать файлы на веб-сервер, вы должны хранить их содержимое как можно больше в базе данных.
Вы должны сообщить серверу, чтобы он автоматически отправлял заголовки загрузок и не выполнял файлы в определенном каталоге, например /download/.
Таким образом, вы можете направить пользователя непосредственно к файлу на сервере без необходимости писать дополнительный код для его загрузки.
Comments