首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用encodeForHTML方法在OWASP编码器中允许“/”

使用encodeForHTML方法在OWASP编码器中允许“/”
EN

Stack Overflow用户
提问于 2017-10-26 12:07:51
回答 1查看 1.2K关注 0票数 3

我需要净化Http参数值,以防止xss攻击。我正在使用下面的owasp jar。esapi-2.1.0.1.jar

我有参数date,它包含由'/‘分隔的值。date=20/10/2017

下面是我用来编码值的代码段。

代码语言:javascript
运行
复制
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

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

代码语言:javascript
运行
复制
private final static char[]     IMMUNE_HTML = { ',', '.', '-', '_', ' ' };

我想不出任何绕行的办法

EN

回答 1

Stack Overflow用户

发布于 2018-02-18 06:04:00

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

如果您真的想使用编码器jar,可以使用任何简单的方法,比如Encode.forHtml(str),它不对'/‘进行编码。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46953935

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档