esapi是如何encode的?

靠谱的程序员 2014-07-24 04:06:52
最近项目组在搞安全问题,主要是为了解决xss攻击,OWASP.com推荐了esapi用来对页面上的输出进行转码,有一点不太明白的地方就是:ESAPI.encoder().encodeForHTML(input) 这个方法把input转成什么了?
经过转码jsp页面上显示:暴瑶博
HTML源码显示:
暴瑶博


神奇的是我后来这样写的:
input= ESAPI.encoder().encodeForHTML(input);
input = ESAPI.encoder().encodeForHTMLAttribute(input);
input = ESAPI.encoder().encodeForJavaScript(input);
input = ESAPI.encoder().encodeForCSS(input);
input = ESAPI.encoder().encodeForURL(input);


经过转码jsp页面上"暴瑶博"三个字就变成了这个样子:
%5C5c+x26amp%5C5c+x3B%5C5c+x26%5C5c+x23x23%5C5c+x3Bx66b4%5C5c+x26%5C5c+x23x3b%5C5c+x3B%5C5c+x26amp%5C5c+x3B%5C5c+x26%5C5c+x23x23%5C5c+x3Bx7476%5C5c+x26%5C5c+x23x3b%5C5c+x3B%5C5c+x26amp%5C5c+x3B%5C5c+x26%5C5c+x23x23%5C5c+x3Bx535a%5C5c+x26%5C5c+x23x3b%5C5c+x3B


难道打开的方式有问题?
...全文
746 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
ru_li 2016-05-06
  • 打赏
  • 举报
回复
请问楼主,esapi是怎么加载的?为什么我的程序运行总是出错?
Max@2008 2014-11-29
  • 打赏
  • 举报
回复
你使用一次转码就好,input= ESAPI.encoder().encodeForHTML(input); 如果你每次都给input,最后就转来很多遍了

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧