Xss攻击原理及防止办法简介
来源:互联网 发布:my sql has gone away 编辑:程序博客网 时间:2024/06/05 02:39
Xss攻击原理及防止办法简介
1 XSS原理
Cross Site Script(XSS),跨站脚本威胁。
XSS之所以会发生, 是因为用户输入的数据变成了代码。 所以我们需要对用户输入的数据进行HTML Encode处理。 将其中的"中括号", “单引号”,“引号” 之类的特殊字符进行编码。
恶意攻击者可以利用跨站脚本攻击做到:
1、盗取用户cookie,伪造用户身份登录;
2、让浏览者被迫执行某页面操作,以用户身份向服务器发起请求,达到攻击目的;
3、结合浏览器漏洞,下载病毒木马到浏览者的计算机上执行;
4、衍生url跳转漏洞;
5、让官方网站出现钓鱼页面;
6、蠕虫攻击。
跨站脚本攻击有几种情形:
a、html属性位置
b、html标签内
c、javascript标签块内
2 测试条件
3 防Xss攻击的方法
方法一:
编写代码将html字符转义,至少在输出的时候要进行转义。
/** * 转义标记以正常显示 * * @param input * @return String */ public static String replaceTag(String input) { StringBuilder filtered = new StringBuilder(input.length()); char c; for (int i = 0; i <= input.length() - 1; i++) { c = input.charAt(i); switch (c) { case '<': filtered.append("<"); break; case '>': filtered.append(">"); break; case '"': filtered.append("""); break; case '&': filtered.append("&"); break; default: filtered.append(c); } } return (filtered.toString()); }
方法二:
使用Apache的工具类org.apache.commons.lang3.StringEscapeUtils;
public static String filterHtml(String input, String[] excludeTags){ String escapeStr = StringEscapeUtils.escapeHtml4(input); if(ArrayUtils.isEmpty(excludeTags)){ return escapeStr; } // 不对excludeTags中的tag(如<br>)等进行转义 for (String excludeTag : excludeTags){ escapeStr = escapeStr.replaceAll(Pattern.quote(ESAPI.encoder().encodeForHTML(excludeTag)), excludeTag); } return escapeStr; } // 测试 public static void main(String[] args) { System.out.println(filterHtml("<iframe onload=alert('店小弎')><br>",new String[]{"<br>"})); }
0 0
- Xss攻击原理及防止办法简介
- XSS攻击原理和防止
- 防止 XSS 攻击 解决方案
- 防止XSS攻击Filter
- springmvc 防止XSS攻击
- java 防止xss攻击
- 防止XSS攻击
- springmvc 防止XSS攻击
- Java防止xss攻击
- 防止XSS攻击
- java 防止xss攻击
- 防止 XSS 攻击 解决方案
- java 防止xss攻击
- xss攻击怎么防止
- xss攻击怎么防止
- 网站防止XSS攻击
- 防止xss攻击
- Xss攻击与防止
- GreenDroid,一款增强型的 Android UI 库
- 哪些应用程序不能安装在外部存储器上
- LED 驱动程序
- 小狼毫 Rime 输入方案 设置
- 蜗牛—JavaWeb之个人信息管理系统(三)
- Xss攻击原理及防止办法简介
- 错误提示:ODBC驱动程序不支持动态记录集
- STM32相关
- 学校感悟之- 数据库
- Using a Range for with Multdimensional Arrays.
- STM8问题汇总
- linux平台Redis安装
- POJ 1845 Sumdiv
- 在Wiondows下用powershell编译C/C++程序