首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >允许某些字符对ESAPI编码器免疫?

允许某些字符对ESAPI编码器免疫?
EN

Stack Overflow用户
提问于 2018-11-22 16:58:39
回答 1查看 1.4K关注 0票数 0

我正在尝试将ESAPI编码器与我的JavaEE应用程序结合起来,并希望它不要编码特定的字符集,例如“<”、“!”、“(‘,’)”。

我在文档https://static.javadoc.io/org.owasp.esapi/esapi/2.0.1/org/owasp/esapi/Encoder.html上读到“所有字符都应该被编码,除了一个特定的”免疫“字符列表”。

我想知道我可以在哪里以及如何配置这个“免疫”字符的特定列表。它会在ESAPI.properties文件中吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-23 22:12:57

简单的答案是,你不能,或者至少不容易。您可以通过将ESAPI.properties中的行更改为:

ESAPI.Encoder=org.owasp.esapi.reference.DefaultEncoder

到某种程度上

ESAPI.Encoder=com.MyCompany.myApp.MyEncoder

然后在MyEncoder.java中,用自己的IMMUNE_*变量替换ESAPI的各个IMMUNE_*变量的一个或多个初始化。屁股那是唯一的办法。没有方法或属性来重新定义这一点,因为在一般情况下,您永远不应该这样做。(有一个糟糕的IMO设计决定,使所有ESAPI的引用实现都是单例的,所以如果向DefaultEncoder类提供这样的方法,您将对类的所有实例进行更改,这似乎太危险了。)

所以,与其像我一样回答你的问题,我应该问你为什么要这么做?IMMUNE_CSS编解码器最近添加了“#”(目前仅在GitHub上的“开发”分支中),但即使这样做,也必须在当前和前任OWASP项目负责人之间进行广泛讨论。在所有已知的情况下,免疫清单都是明智地选择“安全”的。则不打算仅适用于已知安全的边缘情况。这就是为什么我要问:“你为什么要这么做?你到底想达到什么目的?”因为也许有一个更好的方法来做你想要做的事情。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53435475

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档