我需要清理 Http 参数值以防止 xss 攻击。我正在使用下面的黄蜂罐。ESAPI-2.1.0.1.jar
我有参数日期,其中包含由"/"分隔的值。日期=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 = { ',', '.', '-', '_', ' ' };
我找不到任何绕过"/"的方法
在不使用任何编码器jar的情况下完美地防止xss,将输入字符串转换为 Date 数据类型的 java 对象,然后再次将其转换回字符串,如果您确实想要字符串中的输出。
如果你真的想使用编码器罐,使用任何简单的方法,如Encode.forHtml(str),它不编码"/"。