XSS防御篇
2015-12-04 17:19
197 查看
上周要求写自己用任何语言写一个留言版,存到数据库中,用自己的办法来解决XSS
我用了JSP+MYSQL,自己写了一个过滤器来防御WEB XSS漏洞
String title = HtmlFilter.filter(request.getParameter("title"));
String content = HtmlFilter.filter(request.getParameter("content"));
在加入数据库前编码一下就可以了。虽然XSS形成的多种多样,很难防御。但是这样的话对中小公司基本足够了。
如果觉得不够可以参考使用OWASP ESAPI,不仅仅可以防御XSS,还可以防御SQL等常见WEB漏洞。
我用了JSP+MYSQL,自己写了一个过滤器来防御WEB XSS漏洞
package com.mess.filter; public class HtmlFilter { public static String filter(String html) { if (html == null) { return null; } StringBuilder sb = new StringBuilder(html.length()); for (int i = 0; i < html.length(); i++) { char c = html.charAt(i); switch (c) { case '>': sb.append(">"); break; case '<': sb.append("<"); break; case '&': sb.append("&"); break; case '"': sb.append("&quit;"); break; case '\'': sb.append("'"); break; default: sb.append(c); break; } } return sb.toString(); } }
String title = HtmlFilter.filter(request.getParameter("title"));
String content = HtmlFilter.filter(request.getParameter("content"));
在加入数据库前编码一下就可以了。虽然XSS形成的多种多样,很难防御。但是这样的话对中小公司基本足够了。
如果觉得不够可以参考使用OWASP ESAPI,不仅仅可以防御XSS,还可以防御SQL等常见WEB漏洞。
相关文章推荐
- SkylineGlobe 如何二次开发获取三维模型的BBOX和设置Tint属性
- HDU 1078 FatMouse and Cheese 记忆化搜索DP
- button设置边宽和圆角
- HDU - 1879 继续畅通工程(最小生成树)
- 数据库oracle 11g 监控管理
- Windows中的system函数
- 如何写简历
- 在日期选择轮中选择的时间转换成年龄
- 字符串与数组互转
- 使用ASI传递post表单..参数是数组
- c语言解析
- 断点续传
- 第十四周实践项目1--验证折半查找
- Java NIO ByteBuffer图解
- Treap学习基本入门
- Leetcode180: Majority Element II
- StarUML使用说明-指导手册
- 通过dSYM和app文件分析Crash
- pat甲 1078 Hashing
- 在WPF中获取程序的专用工作集内存 PerformanceCounter