Как предотвратить Log Injection

Log Injection (Log Forgery), описывает уязвимость, возникающую при любом сценарии, в котором недоверенные входные данные могут загрязнить или нарушить целостность файлов журналов приложений или систем.

Если вы еще не знакомы с концепцией Log Injection, ознакомьтесь со статьей "Что такое Log Injection ?".

Чтобы узнать больше о том, как обнаружить уязвимости Log Injection, ознакомьтесь со статьей "Как тестировать Log Injection".

Ключ к предотвращению Log Injection состоит из двух частей:

  • Выполняйте проверку ввода: Ограничьте набор символов и формат, чтобы они соответствовали вашим требованиям, и отклоняйте любой ввод, который не соответствует вашим ожиданиям. Выполняйте проверку ввода как на клиенте, так и на сервере (в зависимости от ситуации).
  • Нейтрализуйте проблемные символы: Следующие символы должны быть "экранированы" или заменены, когда они появляются во входных данных, которые записываются в файлы/записи журнала:
    \r Возврат каретки
    \n Новая строка
    0x8 (octal 8) Backspace
    < Меньше
    > Больше
    & Амперсанд
    Кавычка
    Апостроф

Обратите внимание, что файлы журналов, содержимое которых будет отображаться в браузере или представляться в виде XML, также должны нейтрализовать метасимволы HTML. Достаточно стандартного кодирования HTML Entity.

Понравилась статья? Поделиться с друзьями:
Добавить комментарий