【发布时间】:2016-01-31 06:58:19
【问题描述】:
作为 Web 应用配置的一部分,系统管理员可以编辑一个 XML 文件。在大多数情况下,它不会受到影响,但在某些情况下,格式错误的 XML 配置可能会导致问题。
在我的 Log4J appender 配置中,我有以下 PatternLayout
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{1} - %enc{%msg}%n"/>
以及在输出中包含<$tag></$tag> 的一对字符串,以警告用户XML 文件中特定的缺失或无效属性。但是,日志输出显示
... <$tag></$tag> tags in $XML.xml are properly defined ...
上面有PatternLayout。
有没有办法仅转义尖括号,以便它们按预期显示在日志中?
【问题讨论】:
-
你为什么使用
%enc? -
因为未来的可能性之一包括在 Web 控制台中公开日志信息。它是几个系统管理员要求的功能。根据文档,使用
%enc有助于防止可能的 XSS 攻击向量。 -
@Jason 所以你想编码它,而不是编码它?
-
特定字符,如尖括号。