我需要净化Http参数值,以防止xss攻击。我正在使用下面的owasp jar。esapi-2.1.0.1.jar
我有参数date,它包含由'/‘分隔的值。date=20/10/2017
下面是我用来编码值的代码段。
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 = { ',', '.', '-', '_', ' ' };
我想不出任何绕行的办法
发布于 2018-02-17 22:04:00
如果您想在不使用任何编码器jar的情况下完美地防止xss,请将输入字符串强制转换为日期数据类型的java对象,然后再将其转换为string,如果您真的想要字符串中的输出。
如果您真的想使用编码器jar,可以使用任何简单的方法,比如Encode.forHtml(str),它不对'/‘进行编码。
https://stackoverflow.com/questions/46953935
复制相似问题