• web 安全问题(二):XSS攻击


    上文说完了CSRF攻击,本文继续研究它的兄弟XSS攻击。

    什么是XSS攻击
    XSS攻击的原理
    XSS攻击的方法
    XSS攻击防御的手段

    什么是XSS攻击

    XSS攻击全名(Cross-Site-Script)跨域脚本攻击,为了跟CSS(Cascading-Style-Sheet)区分开来,所以缩写是XSS。

    XSS攻击的原理

    上一节说道的CSRF攻击是利用的是“伪请求”,这一节的XSS的原理是利用脚本注入的方式。
    主要是依靠一切可能的手段,将浏览器中可以执行的脚本(javascript)植入到页面代码中,从而获取用户cookie甚至账号密码等敏感数据使用户造成的一定的损失。
    通常利用的是目标网站的发帖、发布产品等需要用户输入的地方,将脚本混淆到html输入中,上传到服务器,再诱导别的用户打开此页面,执行脚本的一个过程。

    XSS攻击的方法

    xss漏洞是对web客户端(浏览器)的攻击,所以说植入的代码基本上以javascript和html标签(有时也有结合css样式的xss向量)为主。
    一般有四种方法:

    1. 页面标签附带脚本
    2. Dom 属性附带脚本
    3. 请求地址附带脚本
    4. 回车空格突破过滤限制

    举两个小李子:

    <script>alert('xss')</script>
    
    <img scr=1 onerror=alert('xss')>
    
    <a href=javascrip:alert('xss')>s</a>
    
    <iframe src=javascript:alert('xss');height=0 width=0 />
    
    <img src=x onerror=appendChild(createElement('script')).src='js_url' />
    
    <img src = “#”/**/onerror = alert(/XSS/)>
    <img src = j
    ava script :a ler t(/xss/)>
    

    XSS攻击防御的手段

    因为XSS的根本就是向网站插入脚本代码,并使它运行的一种手段。防御方法分为两种,服务端防御和客户端防御。
    服务端防御:
    1. HttpOnly
    可以限制javascript不能读取cookie,防止会话ID泄露
    2.处理富文本
    过滤掉富文本中的敏感标签如(script、iframe、form),还有敏感词(javascript:) 等等
    客户端防御:
    1. 输入检查
    防止输入敏感字段,如javascript、cookie等等
    2. 检查输出
    脚本都是通过混淆在HTML当中,被当成html代码的一部分才得到执行。
    可以通过编码转义的办法,使得混淆在其中的脚本被当成文本处理,不会被执行。
    编码转义的话,有三种方法:
    1. HTML encode
    将字符转换成HTMLEntities,一般会转(&、<、>、"、'、/)这6个字符。一般是在html标签属性输出的时候使用
    2. JavaScriptEncode
    使用”“对特殊字符进行转义。
    一般在script标签输出、事件输出、CSS输出
    3. URL Encode
    使用URLEncode的方法。

    参考:
    XSS的原理分析与解剖
    跨站脚本攻击(XSS)——常见网站攻击手段原理与防御
    XSS攻击及防御
    XSS攻击的解决方法

  • 相关阅读:
    hibernate执行createSQLQuery时字段重名的问题
    注意JDBC驱动的版本和JDK的版本是否匹配 JDBC连接Mariadb
    MariaDBConn用于链接MariaDB的管理类
    PLSQL Developer对oracle中的数据进行备份恢复
    JQuery判断浏览器类型
    IE与非IE window.onload调用
    如何升级centos到最新版本
    bootstrap 后台模板
    FontAwesome 4.7.0 中完整的675个图标样式CSS参考
    Linux Crontab及使用salt进行管理
  • 原文地址:https://www.cnblogs.com/djh-create/p/8157126.html
Copyright © 2020-2023  润新知