前端安全系列之XSS攻击防范

1、使用textContent

2、使用HTML转义

  • 把JS中的标签转成字符

3、对于链接跳转 禁止含有'javascript:'开头的字符

4、标签属性中含有恶意执行代码 javascript

5、如果用户输入的文本进行过滤很容易照成注入漏洞

6、什么是XSS攻击

  • Cross-Site Scripting(跨站脚本攻击) 为和CSS区分所以叫XSS攻击

7、XSS攻击的本质

  • 而已代码未经过滤,混入正常代码中,浏览器无法分辨,导致恶意代码被执行;

8、在处理输入时,以下内容都不可信

  • 来自用户的 UGC 信息
  • 来自第三方的链接
  • URL 参数
  • POST 参数
  • Referer (可能来自不可信的来源)
  • Cookie (可能来自其他子域注入)

9、XSS分类

  • 根据攻击来源可分为三种: 存储型、反射型、DOM型;

    • 存储型:

      • 攻击者将恶意代码提交到目标网站的数据库中, 用户打开目标网站时,网站服务端将恶意代码从数据库取出,拼接在 HTML 中返回给浏览器;
      • 用户浏览器接收到响应后解析执行,混在其中的恶意代码也被执行, 恶意代码窃取用户数据并发送到攻击者的网站,或者冒充用户的行为,调用目标网站接口执行攻击者指定的操作
      • 常见操作带有用户保存数据的网站功能,如论坛发帖、商品评论、用户私信等
    • 反射型:
      • 攻击者构造出特殊的 URL,其中包含恶意代码,用户打开带有恶意代码的 URL 时,网站服务端将恶意代码从 URL 中取出,拼接在 HTML 中返回给浏览器。
      • 反射型 XSS 跟存储型 XSS 的区别是:存储型 XSS 的恶意代码存在数据库里,反射型 XSS 的恶意代码存在 URL 里
      • 反射型 XSS 漏洞常见于通过 URL 传递参数的功能,如网站搜索、跳转等。
    • DOM 型:
      • 攻击者构造出特殊的 URL,其中包含恶意代码,

        用户打开带有恶意代码的 URL,用户浏览器接收到响应后解析执行,前端 JavaScript 取出 URL 中的恶意代码并执行。
      • DOM 型 XSS 跟前两种 XSS 的区别:DOM 型 XSS 攻击中,取出和执行恶意代码由浏览器端完成,属于前端 JavaScript 自身的安全漏洞,而其他两种 XSS 都属于服务端的安全漏洞。

10、XSS攻击预防

  • 包含两大要素

    • 攻击者提交恶意代码。
    • 浏览器执行恶意代码。
  • 两种方式
    • 纯前端渲染(当前主流形式)

      • 浏览器先加载一个静态 HTML,此 HTML 中不包含任何跟业务相关的数据,然后浏览器执行 HTML 中的 JavaScript, JavaScript 通过 Ajax 加载业务数据,调用 DOM API 更新到页面上。
      • 但纯前端渲染还需注意避免 DOM 型 XSS 漏洞;
      • 使用.innerHTML、.outerHTML、document.write()要小心;应尽量使用textContent;如果用 Vue/React 技术栈,并且不使用 v-html、dangerouslySetInnerHTML 功能,就在前端 render 阶段避免 innerHTML、outerHTML 的 XSS 隐患。
    • 转义 HTML
      • Java 工程里,常用的转义库为 org.owasp.encoder;

后记

XSS攻击防范的更多相关文章

  1. 来自内部的XSS攻击的防范

    来自内部的XSS攻击的防范 引入:前面我们分2篇文章分别探讨了来自外部的XSS攻击和来自内部的XSS攻击,现在我们来专门探讨如何防范来自内部的XSS攻击. 实践:其实从 http://www.2cto ...

  2. XSS研究2-来自内部的XSS攻击的防范

    引入: 前面我们分2篇文章分别探讨了来自外部的XSS攻击和来自内部的XSS攻击,现在我们来专门探讨如何防范来自内部的XSS攻击.   实践:  http://www.cnblogs.com/crazy ...

  3. 网络XSS攻击和CSRF攻击原理及防范

    网络XSS攻击和CSRF攻击原理及防范 原文地址:http://www.freebuf.com/articles/web/39234.html 随着Web2.0.社交网络.微博等等一系列新型的互联网产 ...

  4. XSS攻击原理、示例和防范措施

    XSS攻击 XSS(Cross-Site Scripting,跨站脚本)攻击历史悠久,是危害范围非常广的攻击方式. Cross-Site Stripting的缩写本应该是CSS,但是为了避免和Casc ...

  5. XSS 防范XSS 攻击的措施

    XssSniper--0KEE TEAM               XssSniper--0KEE TEAM XssSniper 扩展介绍 一直以来,隐式输出的DomXSS漏洞难以被传统的扫描工具发 ...

  6. xss跨站脚本攻击及xss漏洞防范

    xss跨站脚本攻击(Cross Site Scripting,因与css样式表相似故缩写为XSS).恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Scrip ...

  7. web安全之XSS攻击原理及防范

    阅读目录 一:什么是XSS攻击? 二:反射型XSS 三:存储型XSS 四:DOM-based型XSS 五:SQL注入 六:XSS如何防范? 1. cookie安全策略 2. X-XSS-Protect ...

  8. XSS攻击及防范

    1.什么是XSS攻击 跨站脚本攻击(Cross Site Scripting),攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到 ...

  9. xss攻击与防范

    xss攻击方式以及防范 通常来说,网站一般都是有着,用户注册,用户登录,实名认证等等这些需要用户把信息录入数据库的接口 xss找的就是这种接口,他们可以在传递数据的时候,传递恶意的  script  ...

随机推荐

  1. SnapKit

    SnapKit 是 Masonry 框架的团队针对 Swift 全新开发的一套自动布局框架 官方网站:http://snapkit.io github网站:https://github.com/Sna ...

  2. 一次SQL查询优化原理分析(900W+数据,从17s到300ms) (转)

    有一张财务流水表,未分库分表,目前的数据量为9555695,分页查询使用到了limit,优化之前的查询耗时16 s 938 ms (execution: 16 s 831 ms, fetching: ...

  3. Git分支基本操作

    感谢廖雪峰老师,以下教程均来自廖雪峰老师的博客,地址:https://www.liaoxuefeng.com/wiki/896043488029600/900003767775424 基本原理 在版本 ...

  4. Win10 提示凭证不工作问题

    感谢大佬:https://cloud.tencent.com/developer/article/1337081 在公司局域网远程自己计算机的时候,突然无法远程了,提示"您的凭据不工作 之前 ...

  5. array_intersect_key 取得需要字段 用法

    $need_key = [ 'hash' => 0 ];        $parma = array_intersect_key( $parmas, $need_key );

  6. JavaGuide--Java篇

    本文避免重复造轮子,也是从JavaGuider中提取出来方便日后查阅的手册 参考链接: JavaGuider:https://javaguide.cn/java/basis/java-basic-qu ...

  7. PHP+mysql常考题

    PHP+mysql常考题 来自<PHP程序员面试笔试宝典>,涵盖了近三年了各大型企业常考的PHP面试题,针对面试题提取出来各种面试知识也涵盖在了本书. 常考的mysql基础题 问题:设教务 ...

  8. Solution -「HAOI 2018」「洛谷 P4491」染色

    \(\mathcal{Description}\)   Link.   用 \(m\) 种颜色为长为 \(n\) 的序列染色,每个位置一种颜色.对于一种染色方案,其价值为 \(w(\text{出现恰 ...

  9. 解决Springboot中的日期解析错误

    错误信息: error: Failed to parse Date value '2022-01-12 15:00:00': Cannot parse date "2022-01-12 15 ...

  10. OpenHarmony移植:如何适配utils子系统之KV存储部件

    摘要:本文介绍移植开发板时如何适配utils子系统之KV存储部件,并介绍相关的运行机制原理. 本文分享自华为云社区<OpenHarmony移植案例与原理 - utils子系统之KV存储部件> ...