上篇我们讲了XSS的一些相关的内容,这篇我们就直接上代码demo解决实际问题吧。

主要的问题是xssfilter的编写,我们直接去网上找一下框架,一般有js,php,java等语言都有相关的XSS的相关支持框架,小编自己就用擅长的java来解决.

一、首先我下载了lucy-xss这个jar

二、demo例子如下:

import com.nhncorp.lucy.security.xss.XssFilter;
import com.nhncorp.lucy.security.xss.XssPreventer;
import com.nhncorp.lucy.security.xss.XssSaxFilter; /**
* XSS漏洞测试
* @author mingge
*
*/
public class TestXSS { public static void main(String[] args) { String dirty22= "\"><script>alert('xss');</script>";// XSS漏洞
String clean22 = XssPreventer.escape(dirty22);// 被转码后的数据
System.out.println(clean22);
System.out.println(XssPreventer.unescape(clean22));
XssSaxFilter filter22 = XssSaxFilter.getInstance("lucy-xss-superset-sax.xml");
String clean1 = "<TABLE class=\"NHN_Layout_Main\" style=\"TABLE-LAYOUT: fixed\" cellSpacing=\"0\" cellPadding=\"0\" width=\"743\">"
+ "</TABLE>" + "<SPAN style=\"COLOR: #66cc99\"></SPAN>";
String filtered = filter22.doFilter(clean1);
System.out.println(clean1);
System.out.println(filtered); XssFilter filter = XssFilter.getInstance("lucy-xss-superset.xml");
String dirty = "<img src=\"<img src=1\\ onerror=alert(1234)>\" onerror=\"alert('XSS')\">";
String expected = "<img src=\"\"><!-- Not Allowed Attribute Filtered ( onerror=alert(1234)) --><img src=1\\>\" onerror=\"alert('XSS')\"&gt;";
String clean = filter.doFilter(dirty);
System.out.println(expected);
System.out.println(clean); dirty = "<img src='<img src=1\\ onerror=alert(1234)>\" onerror=\"alert('XSS')\">";
expected = "<img src=''><!-- Not Allowed Attribute Filtered ( onerror=alert(1234)) --><img src=1\\>\" onerror=\"alert('XSS')\"&gt;";
clean = filter.doFilter(dirty);
System.out.println(expected);
System.out.println(clean);
}
}

这个demo很容易转码,是复合我们需求的。

这个框架的web配置如下:

<filter>
<filter-name>xssEscapeServletFilter</filter-name>
<filter-class>com.navercorp.lucy.security.xss.servletfilter.XssEscapeServletFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>xssEscapeServletFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

是不是很简单.

如果你想看源码,请参考:https://github.com/naver/lucy-xss-filter

day day up。。。

最新文章

  1. tyvj1005 采药
  2. python 读取并显示图片的两种方法
  3. Android实现系统重新启动
  4. WinDbg 命令三部曲:(一)WinDbg 命令手册
  5. Linux - full name of command
  6. 【 D3.js 高级系列 】 总结
  7. 团体程序设计天梯赛-练习集L1-021. 重要的话说三遍
  8. _js day11
  9. C语言对mysql数据库的操作
  10. mysql之 mysqldump 备份恢复详解
  11. Mysql连接出错问题
  12. 使用BigQuery分析GitHub上的C#代码
  13. 在Windows下搭建Gitlab服务器
  14. RabbitMQ教程
  15. (转)ZooKeeper的Znode剖析
  16. android开机动画(bootanimation)
  17. WD与循环 组合数学
  18. Java线程间和进程间通信
  19. Java知识汇总——思维导图
  20. C#WinForm窗体事件执行次序

热门文章

  1. A nonrecursive list compacting algorithm
  2. 处理TCP连包的一小段代码
  3. 「NOIP2005」「Codevs1106」篝火晚会
  4. [laravel]请求处理
  5. 如何给lemon开无限栈
  6. ML一些零散记录
  7. html 样式之style属性的使用
  8. A. Meeting of Old Friends
  9. Windows 下openssl安装与配置
  10. 51nod 1133【贪心】