注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

放飞自由

年轻人,如果三年的时间里,没有任何想法,他这一生,就基本这个样子,没有多大改变。

 
 
 

日志

 
 

java(ssh)项目防止XSS攻击方法总结  

2014-04-18 17:20:42|  分类: JAVA后台 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
最近用360扫了一下网站,扫除一个大漏洞,之前也有人给提过建议,当时没有时间,今天发现后决定解决一下。

360、阿里网站上都推荐了一个叫做xssprotect的开源jar,试用过后感觉不是太好,后台一直打印各种文本,也不知道是什么东西,想改一下他的源码,但是又不想浪费时间,于是,网上搜索了半天,找到了一个个人认为比较不错的方法,具体如下:

1、下载相应的jar和源码

2、把src文件复制到项目中

3、在web.xml文件中加入以下代码
<listener>
<listener-class>com.github.pukkaone.jsp.EscapeXmlELResolverListener</listener-class>
</listener>

4、引入自定义标签,复制webappenhance.tld到WEB-INF的tlds目录下

5、需要转移的直接输出即可
<h1>Hello, ${user.name}</h1>
但是有时候我们不希望对EL表达式输出的结果进行转码,所以需要用到一下方式:
<%@ taglib prefix="enhance" uri="http://pukkaone.github.com/jsp" %>

<enhance:out escapeXml="false">
I hope this expression returns safe HTML: ${user.name}
</enhance:out>
这样包含在自定义标签中的EL表达式不会进行转化。同理,也可以用在js中,如下:

var foodData='<es:out escapeXml="false">${foodInfo}</es:out>'; //同样有效

注:默认情况下可以使用<c:out value="${user.name}"/>和${fn:escapeXml(user.name)}对el表达式输出进行转码

参考文章地址:http://pukkaone.github.io/2011/01/03/jsp-cross-site-scripting-elresolver.html

急着上厕所,不写了就这样!

推荐一篇不错的文章:http://snoopyxdy.blog.163.com/blog/static/60117440201284103022779/
  评论这张
 
阅读(5224)| 评论(1)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017