XSS攻击及防御

发表于:2013-12-12 11:19

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:三千分之一的爱    来源:51Testing软件测试网采编

  比如用户输入:<script>window.location.href=”http://www.baidu.com”;</script>,保存后最终存储的会是:&lt;script&gt;window.location.href=&quot;http://www.baidu.com&quot;&lt;/script&gt;在展现时浏览器会对这些字符转换成文本内容显示,而不是一段可执行的代码。
  其它
  下面提供两种Html encode的方法。
  使用Apache的commons-lang.jar
  StringEscapeUtils.escapeHtml(str);// 汉字会转换成对应的ASCII码,空格不转换
  自己实现转换,只转换部分字符
private static String htmlEncode(char c) {
switch(c) {
case '&':
return"&amp;";
case '<':
return"&lt;";
case '>':
return"&gt;";
case '"':
return"&quot;";
case ' ':
return"&nbsp;";
default:
return c +"";
}
}
/** 对传入的字符串str进行Html encode转换 */
public static String htmlEncode(String str) {
if(str ==null || str.trim().equals(""))   return str;
StringBuilder encodeStrBuilder = new StringBuilder();
for (int i = 0, len = str.length(); i < len; i++) {
encodeStrBuilder.append(htmlEncode(str.charAt(i)));
}
return encodeStrBuilder.toString();
}
22/2<12
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号