在OWASP编码器中允许'/'使用encodeForHTML方法

时间:2017-10-26 12:07:52

标签: java security xss owasp

我需要清理Http Parameter值以防止xss攻击。我正在使用下面的owasp jar。 的 ESAPI-2.1.0.1.jar

我的参数日期包含以'/'分隔的值。 的日期= 20 /二千零十七分之十

这是我用来编码值的代码段。

import org.owasp.esapi.ESAPI;
import org.owasp.esapi.Encoder;

String s = "20/10/2017";
String ts = encoder.encodeForHTML(s);
System.out.println(ts);

正在打印 20/ 10/ 2017 但我需要允许'/',其价值应该是 20/10/2017

我查看了源代码并允许一些字符,并在最终的数组中声明。

private final static char[]     IMMUNE_HTML = { ',', '.', '-', '_', ' ' };

我无法找到任何绕过'/'

的方法

1 个答案:

答案 0 :(得分:1)

如果你想在不使用任何编码器jar的情况下完全防止xss, 将输入字符串转换为Date数据类型的java对象,然后再将其强制转换为字符串,如果你真的想要输出字符串。

如果你真的想使用编码器jar, 使用任何简单的方法,如Encode.forHtml(str),它不编码'/'。