如果你总是格式化你的日志,log4j2 有 JNDI 风险吗

does log4j2 has JNDI risk if you alway format your log

如果一直格式化log,log4j2有JNDI风险吗?

this.logger.info("your input code: {}。",code);

该漏洞是由格式化的日志消息触发的,因此无论您是通过字符串连接、使用参数化日志记录方法(如您的示例)还是以任何其他方式创建消息都没有关系。
所以是的,您的代码很可能容易受到攻击。

您可以通过 运行 轻松测试:

String user = "${java:os}";
logger.info("User '{}' logged in", user);

但是请注意,如果上面日志消息中的查找占位符未被替换,您不应认为您的应用程序是安全的。它还取决于您使用的日志记录布局。

为了安全起见,您应该更新应用程序使用的 Log4j 2 版本或尝试 security notes.

中列出的其他缓解措施