top of page

Что такое Атака включения локального файла и как с ней справиться?



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


  • Включение файлов для анализа интерпретатором языка

  • Включение файлов, напечатанных на странице

  • Включение файлов, предлагаемых в качестве загрузок

  • Защита от атак Local File Inclusion


Советы, позволяющие пользователям безопасно читать или загружать файлы:


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

  • Вы должны использовать белый список файлов и игнорировать все остальные имена файлов и пути.

  • Вместо того, чтобы включать файлы на веб-сервер, вы должны хранить их содержимое как можно больше в базе данных.

  • Вы должны сообщить серверу, чтобы он автоматически отправлял заголовки загрузок и не выполнял файлы в определенном каталоге, например /download/.


Таким образом, вы можете направить пользователя непосредственно к файлу на сервере без необходимости писать дополнительный код для его загрузки.


bottom of page