web安全之跨站脚本攻击xss

2024-07-21 1630阅读

定义:

web安全之跨站脚本攻击xss

后果

比如黑客可以通过恶意代码,拿到用户的cookie就可以去登陆了

分类

存储型

攻击者把恶意脚本存储在目标网站的数据库中(没有过滤直接保存),当用户访问这个页面时,恶意脚本会从数据库中被读取并在用户浏览器中执行。比如在那些允许用户评论的网站, 用户越多,中招的越多

web安全之跨站脚本攻击xss

流程web安全之跨站脚本攻击xss

反射型

攻击者通过构造恶意链接,诱使用户点击,恶意脚本随请求发送到目标网站服务器,服务器查看了链接以后以为用户要检索某些信息,并没有进行额外的过滤,服务器的数据库也不需要保存什么信息,就只是返回了对应的结果,浏览器只是把结果呈现在页面.

web安全之跨站脚本攻击xss

例子

web安全之跨站脚本攻击xss

反射型一般是利用网页的检索功能, 你输入的检索信息会显示在页面中web安全之跨站脚本攻击xss

如果url加一个script标签, 也就注入网页成为内容的一部分,浏览器就会去执行这个js代码

web安全之跨站脚本攻击xss

DOM型

攻击者在url中插入恶意代码,前端直接从url中获取恶意代码并且输出到页面,导致恶码被执行, 跟反射型很像,但浏览器并未把恶意代码发送给服务器, 是前端直接执行的. 比如url中的hash部分是不会发送给服务器的,即url前面的部分服务器照常请求,也就是浏览器的渲染分了两步走,给黑客留下可以攻击的漏洞

“#”部分的更改不会重新发送请求, 此页面将hash注入到了页面,黑客就可以利用这个点往页面注入内容, 比如获取cookie并发送等

web安全之跨站脚本攻击xssweb安全之跨站脚本攻击xss

三者区别

DOM 型取出和执⾏恶意代码由浏览器端完成,不涉及将恶意脚本发送到服务器,属于前端JavaScript 自身的安全漏洞,而其他两种属于服务端的安全漏洞。

应对策略

1. 对用户输入进行严格的验证和过滤

  • 前端验证
    1. 通过h5表单属性,如pattern正则表达式模式,type字段的属性进行限制等;
    2. js中的动态验证: 通过对表单输入变化或者提交事件添加addevenlistener监听,如限制用户输入的长度
    • 服务端验证

      无论客户端是否验证,都必须在服务器端再次验证输入。

      可以使用后端语言的内置函数或正则表达式进行验证。

      2. 输入过滤

      1. 用户输入显示在网页上之前,将其中的特殊字符(如 , &, ', ")转义,防止其被解释为脚本, 防止 XSS 攻击。
      2. URL 编码: 将 URL 中的特殊字符转换为 % 加上两位十六进制数的形式,以确保 URL 安全解析
      let userInput = 'hello world';
      let encodedInput = encodeURIComponent(userInput);
      console.log(encodedInput);  // hello%20world
      

      3. 内容安全策略CSP

      在网关通过HTTP 响应头设Content-Security-Policy或者HTML 标签设置,本质是建立一个白名单,告诉浏览器哪些外部资源可以加载和执行,从而防止恶意代码的注入攻击。

      CSP 通过指定允许的资源来源,阻止了恶意脚本、样式表、图像等资源的加载。例如,通过配置 script-src,可以只允许从可信任的域名加载脚本,任何来自其他域名的脚本都会被阻止

      web安全之跨站脚本攻击xss

      web安全之跨站脚本攻击xss

      4. http-only

      黑客本质是想获取cookie拿到客人信息, 而Cookie有一个http-only属性,表示只能被http请求携带,不能通过客户端js脚本访问cookie,

      5. textContent代替innerHTML(反射型)

      所以前端应该避免使用innerHTML、document.write, v-html、dangerouslySetInnerHTML 把不可信的数据作为 HTML 插到页面上,而应尽量使用 textContent 等。

      textContent 属性用于设置或获取一个元素的文本内容。与 innerHTML 不同,textContent 仅处理文本,不会解析 HTML 标签。

      参考视频:

      https://www.bilibili.com/video/BV1rg411v7B8/?spm_id_from=333.788&vd_source=bb7c78c7981f6b653a3daf2f416312cb

      https://www.bilibili.com/video/BV1ww411p7DG/?spm_id_from=pageDriver&vd_source=bb7c78c7981f6b653a3daf2f416312cb

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]