美文网首页
安全-XSS攻击

安全-XSS攻击

作者: javaBoy_hw | 来源:发表于2024-01-15 15:22 被阅读0次

    XSS攻击简单的分类为反射型XSS、存储型XSS、DOM-based 型、基于字符集的 XSS、基于 Flash 的跨站 XSS、未经验证的跳转 XSS 6种类型。常见分类是前面3种,后面3个较小众。

    1. 反射型XSS

    反射型XSS,又称非持久型XSS。这种攻击方式的注入代码是从目标服务器通过错误信息、搜索结果等等方式“反射”回来的:发出请求时,XSS代码出现在URL中,作为输入提交到服务器端,服务器端解析后响应,XSS代码随响应内容一起传回给浏览器,最后浏览器解析执行XSS代码。

    反射型XSS漏洞攻击的四大特点:
    ① 即时性。不经过服务器存储,直接通过 HTTP 的 GET 和 POST 请求就能完成一次攻击,拿到用户隐私数据;
    ②攻击者需要诱骗点击;
    ③反馈率低,所以较难发现和响应修复;
    ④盗取用户敏感保密信息。

    防止出现反射型XSS漏洞的五大措施:
    ① Web 页面渲染的所有内容或者渲染的数据都必须来自于服务端;
    ②尽量不要从 URL,document.referrer,document.forms 等这种 DOM API 中获取数据直接渲染;
    ③尽量不要使用 eval, new Function(),document.write(),document.writeln(),window.setInterval(),window.setTimeout(),innerHTML,document.creteElement() 等可执行字符串的方法;
    ④如果做不到以上几点,也必须对涉及 DOM 渲染的方法传入的字符串参数做 escape 转义;(重要防范措施)
    ⑤ 前端渲染的时候对任何的字段都需要做 escape 转义编码。

    2. 存储型XSS

    存储型XSS,又称持久型XSS。

    存储型XSS三大特点:
    ①持久性,植入在数据库中;
    ②危害面广,甚至可以让用户机器变成 DDoS 攻击的肉鸡;
    ③ 盗取用户敏感私密信息。

    存储型XSS漏洞的三大措施:
    ①后端在入库前应该选择不相信任何前端数据,将所有的字段统一进行转义处理;
    ②后端在输出给前端数据统一进行转义处理;
    ③前端在渲染页面 DOM 的时候应该选择不相信任何后端数据,任何字段都需要做转义处理。

    3. DOM-based 型

    4. 基于字符集的 XSS

    基于字符集的 XSS漏洞的两大措施:
    ①记住指定 <meta charset="utf-8">;
    ② XML 中不仅要指定字符集为 utf-8,而且标签要闭合。

    5. 基于 Flash 的跨站 XSS

    6. 未经验证的跳转 XSS

    防止未经验证的跳转 XSS漏洞的两种措施:
    ①对待跳转的 URL 参数做白名单或者某种规则过滤;
    ②后端注意对敏感信息的保护, 比如 cookie 使用来源验证。

    具体做法:
    1.前端渲染的时候对任何的字段都需要做 escape 转义编码。
    2.后端在入库前应该选择不相信任何前端数据,将所有的字段统一进行转义处理。
    3.后端在输出给前端数据统一进行转义处理。
    4.指定 <meta charset="utf-8">。
    5.XML 中不仅要指定字符集为 utf-8,而且标签要闭合。
    6.设置会话Cookie的HTTP Only属性。
    7.X-Frame-options配置为SAMEORIGIN。(https://developer.mozilla.org/zh-CN/docs/web/http/headers/x-frame-options
    8.严格定义 Content-Type: application / json。检查Content-Type设置为html,一定要改为application / json。
    9.配置CSP,Content Security Policy:self、data、具体制定域名(aqyj和rhtx)3种效果比对。

    参考资料

    相关文章

      网友评论

          本文标题:安全-XSS攻击

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