我需要清理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 = { ',', '.', '-', '_', ' ' };
我无法找到任何绕过'/'
的方法答案 0 :(得分:1)
如果你想在不使用任何编码器jar的情况下完全防止xss, 将输入字符串转换为Date数据类型的java对象,然后再将其强制转换为字符串,如果你真的想要输出字符串。
如果你真的想使用编码器jar, 使用任何简单的方法,如Encode.forHtml(str),它不编码'/'。