ESAPI для журналов: следует ли кодировать вывод журнала?

Я столкнулся с дилеммой, связанной с ведением журнала. Я ESAPI.properties установил следующие параметры журналов:

LogLevel=INFO
LogEncodingRequired=true

В моем приложении, если я вызываю ESAPI.getLogger(MyClass.class).info(Logger.USABILITY, true, message), оно распечатает сообщение с закодированными символами (если есть какие-либо из этих ‹,>, &, '," и т. Д.).

Проблема в том, что сообщения, которые я буду распечатывать в журналах, будут содержать эти символы, а приведенный выше вызов log.info испортит внешний вид журнала со всеми закодированными символами.

Вопрос: Если я устанавливаю LogEncodingRequired=false (который затем выводит сообщение как есть), повышает ли это вероятность того, что мои файлы журнала (которые можно просмотреть в веб-браузере) будут уязвимы для XSS?


person cockatoo    schedule 19.12.2014    source источник


Ответы (1)


Похоже, вы просматриваете свои журналы с помощью веб-инструмента, который неправильно кодирует свои выходные данные, или просматриваете необработанные веб-журналы в веб-браузере. Изменение этого значения определенно увеличит вероятность XSS в случае, если вы неправильно проверяете данные, предоставленные пользователем, когда они поступают в приложение (которое затем записывается в эти журналы). Это также может привести к инъекции журнала.

person gimer    schedule 01.04.2015