org.owasp.esapi.reference.DefaultEncoder 对比 org.owasp.encoder.Encode

org.owasp.esapi.reference.DefaultEncoder vs. org.owasp.encoder.Encode

org.owasp.esapi.reference.DefaultEncoderorg.owasp.encoder.Encode classes 都提供了 VeraCode 的一些 Supported Cleansing Functions 来解决潜在的跨站点脚本 (XSS) 攻击。考虑到它们都来自 OWASP,我不得不认为它们不是多余的,但有些方法看起来是为了做同样的事情,例如 DefaultEncoder.encodeForHTML(String)Encode.forHtml(String)。我想知道它们之间有什么不同,什么时候使用一个 class 而不是另一个更好。

它们来自不同的项目,在功能上有一些重叠。 org.owasp.esapi.reference.DefaultEncoder 来自 ESAPI 项目,org.owasp.encoder.Encode 来自 OWASP Java Encoder 项目。 Java 编码器项目更新且维护得更积极,更专门用于输出编码,而 ESAPI 也具有其他功能。

对于 HTML 编码之类的东西,他们在做同样的事情,所以没有太大区别,但看起来 ESAPI 现在更像是一个遗留项目。参见: