码迷,mamicode.com
首页 > 其他好文 > 详细

XSS防御篇

时间:2015-12-04 20:19:19      阅读:123      评论:0      收藏:0      [点我收藏+]

标签:

上周要求写自己用任何语言写一个留言版,存到数据库中,用自己的办法来解决XSS

我用了JSP+MYSQL,自己写了一个过滤器来防御WEB XSS漏洞

 1 package com.mess.filter;
 2 
 3 public class HtmlFilter {
 4     public static String filter(String html) {
 5         if (html == null) {
 6             return null;
 7         }
 8         StringBuilder sb = new StringBuilder(html.length());
 9         for (int i = 0; i < html.length(); i++) {
10             char c = html.charAt(i);
11             switch (c) {
12             case ‘>‘:
13                 sb.append("&gt;");
14                 break;
15             case ‘<‘:
16                 sb.append("&lt;");
17                 break;
18             case ‘&‘:
19                 sb.append("&amp;");
20                 break;
21             case ‘"‘:
22                 sb.append("&quit;");
23                 break;
24             case ‘\‘‘:
25                 sb.append("&#039;");
26                 break;
27             default:
28                 sb.append(c);
29                 break;
30             }
31         }
32         return sb.toString();
33     }
34 
35      
36 
37 }

String title = HtmlFilter.filter(request.getParameter("title"));
String content = HtmlFilter.filter(request.getParameter("content"));

在加入数据库前编码一下就可以了。虽然XSS形成的多种多样,很难防御。但是这样的话对中小公司基本足够了。

如果觉得不够可以参考使用OWASP ESAPI,不仅仅可以防御XSS,还可以防御SQL等常见WEB漏洞。

 

XSS防御篇

标签:

原文地址:http://www.cnblogs.com/sevck/p/5019972.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!