org.owasp.esapi.reference.DefaultEncoder
和org.owasp.encoder.Encode
类都提供了一些 VeraCode 的 Supported Cleansing Functions用于解决潜在的跨站点脚本 (XSS) 攻击。考虑到它们都来自 OWASP,我不得不认为它们不是多余的,但有些方法看起来是为了做同样的事情,例如,DefaultEncoder.encodeForHTML(String)
和 Encode.forHtml(String)
。我想知道它们之间有什么不同,什么时候最好使用一个类而不是另一个。
最佳答案
它们来自不同的项目,在功能上有一些重叠。 org.owasp.esapi.reference.DefaultEncoder
来自 ESAPI 项目,org.owasp.encoder.Encode
来自 OWASP Java Encoder 项目。 Java Encoder 项目更新且维护更积极,更专门用于输出编码,而 ESAPI 也具有其他功能。
对于像 HTML 编码这样的东西,他们做同样的事情所以没有太大区别,但看起来 ESAPI 现在更像是一个遗留项目。见:
关于character-encoding - org.owasp.esapi.reference.DefaultEncoder 与 org.owasp.encoder.Encode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52206421/