zoukankan      html  css  js  c++  java
  • web安全---XSS

    攻击的介绍

    1. XSS 防范是后端 RD(研发人员)的责任,后端 RD 应该在所有用户提交数据的接口,对敏感字符进行转义,才能进行下一步操作。
    2. 所有要插入到页面上的数据,都要通过一个敏感字符过滤函数的转义,过滤掉通用的敏感字符后,就可以插入到页面中。

    漏洞的发生和修复

    XSS 攻击是页面被注入了恶意的代码,为了更形象的介绍,我们用发生在小明同学身边的事例来进行说明。
    一个案例
    () <input type="text" value="<%= getParameter("keyword") %>"> <button>搜索</button> <div> 您搜索的关键词是:<%= getParameter("keyword") %> </div> ()
    然而,在上线后不久,安全组发来的一个神秘链接:http://xxx/search?keyword=">

    浏览器无法分辨出 <script>alert('XSS');</script> 是恶意代码,因而将其执行。
    
    这里不仅仅 div 的内容被注入了,而且 input 的 value 属性也被注入, alert 会弹出两次。
    
    面对这种情况,我们应该如何进行防范呢?
    
    其实,这只是浏览器把用户的输入当成了脚本进行了执行。那么只要告诉浏览器这段内容是文本就可以了。
    
    下面我们来系统的看下 XSS 有哪些注入的方法:
    1. 在 HTML 中内嵌的文本中,恶意内容以 script 标签形成注入。
    2. 在内联的 JavaScript 中,拼接的数据突破了原本的限制(字符串,变量,方法名等)。    
    3. 在标签属性中,恶意内容包含引号,从而突破属性值的限制,注入其他属性或者标签。
    4. 在标签的 href、src 等属性中,包含 javascript: 等可执行代码。
    5. 在 onload、onerror、onclick 等事件中,注入不受控制代码。
    6. 在 style 属性和标签中,包含类似 background-image:url("javascript:..."); 的代码(新版本浏览器已经可以防范)。
    7. 在 style 属性和标签中,包含类似 expression(...) 的 CSS 表达式代码(新版本浏览器已经可以防范)。
    

    总之,如果开发者没有将用户输入的文本进行合适的过滤,就贸然插入到 HTML 中,这很容易造成注入漏洞。攻击者可以利用漏洞,构造出恶意的代码指令,进而利用恶意代码危害数据安全。

    什么是xss

    Cross-Site Scripting(跨站脚本攻击)简称 XSS,是一种代码注入攻击。攻击者通过在目标网站上注入恶意脚本,使之在用户的浏览器上运行。利用这些恶意脚本,攻击者可获取用户的敏感信息如 Cookie、SessionID 等,进而危害数据安全。
    为了和 CSS 区分,这里把攻击的第一个字母改成了 X,于是叫做 XSS。
    XSS 的本质是:恶意代码未经过滤,与网站正常的代码混在一起;浏览器无法分辨哪些脚本是可信的,导致恶意脚本被执行。
    而由于直接在用户的终端执行,恶意代码能够直接获取用户的信息,或者利用这些信息冒充用户向网站发起攻击者定义的请求。
    在部分情况下,由于输入的限制,注入的恶意脚本比较短。但可以通过引入外部的脚本,并由浏览器执行,来完成比较复杂的攻击策略。
    这里有一个问题:用户是通过哪种方法“注入”恶意脚本的呢?

    不仅仅是业务上的“用户的 UGC 内容”可以进行注入,包括 URL 上的参数等都可以是攻击的来源。在处理输入时,以下内容都不可信:
    1. 来自用户的 UGC 信息
    2. 来自第三方的链接
    3. URL 参数
    4. POST 参数
    5. Referer (可能来自不可信的来源)
    6. Cookie (可能来自其他子域注入)

    参考:链接

  • 相关阅读:
    P2009 跑步
    P3916 图的遍历
    P2865 [USACO06NOV]路障Roadblocks
    P2820 局域网
    P2176 [USACO14FEB]路障Roadblock
    讨伐!数论
    网络流入门——EK算法
    最被低估的特质
    我的天哪我有博客了!
    Area POJ
  • 原文地址:https://www.cnblogs.com/mary-123/p/12513391.html
Copyright © 2011-2022 走看看