XSS攻击

2019-09-27  本文已影响0人  Chen_JF

1、XSS

XSS(Cross Site Scripting)攻击全称跨站脚本攻击,为了不与CSS(Cascading Style Sheets)混淆,故将跨站脚本攻击缩写为XSS,XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。
通俗的来说就是我们的页面在加载并且渲染绘制的过程中,如果加载并执行了意料之外的程序或代码(脚本、样式),就可以认为是受到了 XSS攻击。

2、XSS的危害

3、XSS分类

4、示例分析

1、入参不严谨,对入参没做任何规则校验。

2、用参太随意,对未知参数未过滤,直接丢给dom操作。

漏洞演示:机密性 - 窃取用户cookie信息

5、如何避免XSS攻击

  1. innerHTML(原生)、v-html(vue)、dangerouslySetInnerHTML(react)等直接渲染html的函数慎用,确保渲染的数据是由前端写死的、无危害的才可直接使用;
  2. 使用innerHTML(原生)、v-html(vue)、dangerouslySetInnerHTML(react)等直接渲染html的函数渲染请求数据时,需要先把字符串转义:
    1)、把 > 替换成 >
    2)、把 < 替换成 &lt;
    3)、把 & 替换成 &amp``;
    4)、把 " 替换成 &quot``;
    5)、把 ' 替换成 &#39``;
  3. 字符过滤:
    1)、过滤掉特殊的HTML标签,例如<script><iframe>等;
    2)、过滤掉Javascript事件标签,例如"onclick""onfocus"等;
  4. Http Only cookie;
  5. 输入检查:对产品输入要求格式严谨检查过滤;

6、讨论&思考

1.学习规范安全编码
根在人为,如果没有规范的学习过前端知识,特别是安全规范知识,直接跨端做前端开发的时候,很多时候知道一个功能怎么去实现,然后百度找api,找到api发现可以使用即可,通常会发生为了实现功能而忽略安全。所以我们在找到可用api时,还得查历该api是否存在安全隐患,需要如何规避、或者有其他更安全的api。

2.对不可信数据保持敏感
对于任何非前端代码数预置数据,保持敏感对待,是否用于dom操作渲染,如果是则需要做相应的过滤处理,或者换其他安全实现方式。

上一篇下一篇

猜你喜欢

热点阅读