0

我读过很多文章,ESAPI for Java可以通过使用Validator & Encoder来防止XSS。顺便说一句,我正在使用 Eclipse。我没有使用 Maven 也没有使用 Spring。

我的问题是:

  1. 如何实现 Java ESAPI 来防止 XSS?
  2. 除了在Build Path中添加 ESAPI jar 之外,还需要其他配置吗?

提前感谢您的回答。

4

1 回答 1

2

防止 XSS 有一些技巧。验证器允许您定义输入字符以接受/拒绝。但是还有不同上下文的概念,这就是 Encoder 类的用武之地。在您的职业生涯中,您将被迫接受可用于攻击浏览器的字符作为输入。

基本的 ESAPI 实现是这样的:根据白名单拒绝输入字符。根据输出上下文使用编码器实现......当决定“我是先编码 HTML 还是先编码 Javascript?这些都可能对您的应用程序产生影响,他们需要根据您的应用程序的需求来决定。例如,我有一些应用程序需要用户输入有效的 Javascript ......在这些情况下,您需要非常小心。

回答你的第 2 部分:是的。现在您可能知道,ESAPI 需要定义两个属性文件...validation.properties 和esapi.properties。您可以自己将它们编译到 jarfile 中(这需要您学习 maven,所以可能不会......)或在运行时指定 java 位置,使用标准的 -Dmy.property 语法。加载异常实际上会引导您走向正确的道路。

于 2014-04-29T02:58:31.763 回答