怎么爱慕网页按钮不被XSS自动点击,怎么样让按钮不被

对抗蠕虫 —— 怎么样让按钮不被 JS 自动点击

2017/07/25 · 怎么爱慕网页按钮不被XSS自动点击,怎么样让按钮不被。JavaScript
· XSS

原稿出处:
EtherDream   

前言

XSS 自动点按钮有怎么着伤害?

在社交网络里,很多操作都以通过点击按钮发起的,例如发表留言。假诺留言系统有
XSS,用户中招后除了主导攻击外,还能够拓展传播 —— XSS
自动填入留言内容,并模仿点击宣布按钮,于是就能发布涵盖恶意代码的留言。好友看了高级中等高校招生后,又流传给她们的竹马之交。。。从而形成蠕虫扩散。

那么有没有一种机制,让「发表留言」必须经过用户的「真实点击」按钮才能不负众望,而望洋兴叹透过脚本自动完成?那样就能减缓蠕虫传播速度了。

前言

XSS 自动点按钮有何样危机?

在社交网络里,很多操作都以通过点击按钮发起的,例如宣布留言。若是留言系统有
XSS,用户中招后除了主导攻击外,还能够拓展传播 —— XSS
自动填入留言内容,并模仿点击公布按钮,于是就能揭穿涵盖恶意代码的留言。好友看了中招后,又传来给她们的密友。。。从而形成蠕虫扩散。

那么有没有一种机制,让「公布留言」必须通过用户的「真实点击」按钮才能到位,而一筹莫展透过脚本自动完毕?那样就能缓慢蠕虫传播速度了。

实现

那些想法听起来好像不可行:如若发布留言需求带上用户作为音讯,那么 XSS
完全能够伪造一份行为数据,后端根本不只怕识别。

唯有,用户在点击按钮时会发生三个「特殊数据」,让后端校验它。

不过,XSS 也足以向来调用按钮成分的 click
方法,这样效果和用户点击照旧一如既往。后端仍力不从心分辨是「脚本点的」依然「用户点的」。

那般看来,大家只可以爱抚好这一个「按钮成分」,让它无法被 XSS
访问到。例如,把按钮放到2个 分裂源的 iframe 里,那样就和 XSS
所在的条件隔绝了!

可是,那样还不够。假设 XSS
破解了这几个「特殊数据」的转变规则,那么即可自个儿伪造七个,然后径直调用
HTTP 接口发布留言。所以,大家得找二个不得伪造的硬标识。

实际,有个非常粗略的方法:我们差不多让 HTTP 请求也通过 iframe
发送。那样,后端通过 referer 即可检查和测试请求是或不是为 iframe 发起的。终归,XSS
是心有余而力不足伪造 referer 的!

前言

前言

实现

本条想法听起来好像不可行:要是宣布留言须求带上用户作为音信,那么 XSS
完全能够以假乱真一份行为数据,后端根本不可能识别。

只有,用户在点击按钮时会产生多少个「特殊数据」,让后端校验它。

可是,XSS 也得以直接调用按钮成分的 click
方法,那样效果和用户点击依然一如既往。后端仍不可能辨认是「脚本点的」如故「用户点的」。

如此看来,我们不得不爱抚好这些「按钮成分」,让它没办法被 XSS
访问到。例如,把按钮放到一个 分化源的 iframe 里,那样就和 XSS
所在的条件隔开分离了!

不过,那样还不够。假设 XSS
破解了那些「特殊数据」的成形规则,那么即可本人伪造三个,然后径直调用
HTTP 接口发布留言。所以,大家得找三个不行伪造的硬标识。

实际上,有个很简短的法门:大家大致让 HTTP 请求也透过 iframe
发送。那样,后端通过 referer 即可检查和测试请求是还是不是为 iframe 发起的。毕竟,XSS
是无能为力伪造 referer 的!

演示

Demo:

瞩目:那一个案例不是看能否注入 XSS,而是看能否透过当前页面包车型地铁 JS
自动发留言!

其它,通过第①方服务器宣布是不算的。那里为简单,省略了登录态;真实场地下,会话
Cookie 是 HttpOnly 的,不能被 JS
获取到,也就不能让第壹方服务器代替发布。

细节:

  1. 使用者加载 safebutton.js,引入 SafeButton

  2. 使用者实例化 SafeButton 对象 A,创设出三个分歧源的 iframe
    作为按钮界面

  3. 用户点击 iframe 按钮后,内部变量 S 置为
    true,同时将点击新闻告知主页面(postMessage)

  4. 主页面收到音信后,让 A 发生 onclick 事件

  5. 使用者将 HTTP 请求数据,通过 A 的 send 方法扔给 iframe

  6. iframe 校验内部变量 S:若为 true,则将数据通过 AJAX
    发送;不然扬弃

  7. 服务器校验 referer:若为 iframe 的地方,则继续工作逻辑;不然放任

  8. iframe 收到 AJAX 再次回到后,将结果扔给主页面

  9. A 产生 onreceive 事件,当中蕴蓄 HTTP 重临结果

其间 No.6 的步调最为根本。就是这一步,使得未经用户点击,XSS 强制扔给
iframe 的信息变得不行!

美高梅开户网址 1

XSS 自动点按钮有哪些加害?

XSS 自动点按钮有如何损伤?

演示

Demo:

留神:那个案例不是看能或无法注入 XSS,而是看能或不可能经过当前页面包车型大巴 JS
自动发留言!

除此以外,通过第3方服务器公布是不算的。那里为简单,省略了登录态;真实场地下,会话
Cookie 是 HttpOnly 的,不可能被 JS
获取到,也就不能让第3方服务器代替发表。

细节:

  1. 使用者加载 safebutton.js,引入 SafeButton
  2. 使用者实例化 SafeButton 对象 A,创制出一个差异源的 iframe
    作为按钮界面
  3. 用户点击 iframe 按钮后,内部变量 S 置为
    true,同时将点击音讯告知主页面(postMessage)
  4. 主页面收到音信后,让 A 产生 onclick 事件
  5. 使用者将 HTTP 请求数据,通过 A 的 send 方法扔给 iframe
  6. iframe 校验内部变量 S:若为 true,则将数据经过 AJAX
    发送;不然放任
  7. 服务器校验 referer:若为 iframe 的地址,则延续工作逻辑;不然扬弃
  8. iframe 收到 AJAX 再次回到后,将结果扔给主页面
  9. A 产生 onreceive 事件,个中涵盖 HTTP 重返结果

中间 No.6 的步调最为重庆大学。正是这一步,使得未经用户点击,XSS 强制扔给
iframe 的音信变得不算!

美高梅开户网址 2

缺陷

理所当然,那一个方案阻挡不住点击威迫 —— XSS 能够把 iframe
成分放大至整个页面,并安装全透明。

那样用户若是在页面的其余地方点一下,iframe 的 S 状态就成为 true
了,于是就能绕过 No.6。

在应酬网络里,很多操作都以透过点击按钮发起的,例如公布留言。若是留言系统有
XSS 漏洞,用户中招后 XSS 除了攻击之外,仍是可以够开始展览传播 ——
它能自动填入留言内容,并点击公布按钮,即可产生带有恶意代码的留言。好友看了中招后,又扩散给她们的相知。。。从而形成蠕虫扩散。

在社交互联网里,很多操作都以通过点击按钮发起的,例如发表留言。假诺留言系统有
XSS 漏洞,用户中招后 XSS 除了攻击之外,仍是能够拓展传播 ——
它能自动填入留言内容,并点击公布按钮,即可发生带有恶意代码的留言。好友看了中招后,又传出给他们的挚友。。。从而形成蠕虫扩散。

缺陷

本来,这一个方案阻挡不住点击威逼 —— XSS 可以把 iframe
成分放大至一切页面,并安装全透明。

这么用户只要在页面包车型大巴别的地点点一下,iframe 的 S 状态就变成 true
了,于是就能绕过 No.6。

结尾

理所当然,安全防卫有胜过无。并且该方案的改建资金也不是极大,后端只是增添四个referer
判断而已;前端也只需改造个别按钮,例如发帖按钮,像点赞那种按钮就没须求保证了。

那么,有没有一种机制,让「发布留言」必须透过用户的「真实点击」按钮才能做到,而不大概透过脚本自动完结?那样就能缓慢蠕虫传播速度了。

这就是说,有没有一种体制,让「公布留言」必须透过用户的「真实点击」按钮才能一呵而就,而不能通过脚本自动完毕?那样就能舒缓蠕虫传播速度了。

结尾

理所当然,安全防卫有胜过无。并且该方案的改建资金也不是不小,后端只是扩张一个referer
判断而已;前端也只需改造个别按钮,例如发帖按钮,像点赞那种按钮就没要求保险了。

1 赞 1 收藏
评论

美高梅开户网址 3

实现

实现

本条想法听起来好像不可行。假诺发布留言必要带上用户作为新闻,那么 XSS
完全能够以假乱真一份行为数据,后端根本不能识别。

本条想法听起来好像不可行。借使揭橥留言须要带上用户作为新闻,那么 XSS
完全可以以假乱真一份行为数据,后端根本不可能识别。

唯有,用户在点击按钮时会发生3个「特殊数据」,让后端校验它。

除非,用户在点击按钮时会发生3个「特殊数据」,让后端校验它。

可是,XSS 也足以直接调用按钮成分的 click
方法,这样效果和用户点击还是一样。后端仍力不从心辨认,是脚本点的,照旧用户点的。

不过,XSS 也能够一向调用按钮成分的 click
方法,那样效果和用户点击依然一如既往。后端仍回天乏术辨识,是脚本点的,依然用户点的。

诸如此类看来,大家只好爱戴好这几个「按钮成分」,让它没法被 XSS
访问到。例如,放在多个差异源的 iframe 里,那样就和 XSS 所在的条件隔断了!

这般看来,大家不得不保养好那一个「按钮成分」,让它没办法被 XSS
访问到。例如,放在3个不相同源的 iframe 里,那样就和 XSS 所在的环境隔断了!

唯独,那样还不够。借使 XSS
破解了那几个「特殊数据」的变动规则,那么即可自个儿伪造3个,然后直接调用
HTTP 接口发布留言。所以,我们得找贰个不行伪造的硬标识。

可是,那样还不够。假使 XSS
破解了那些「特殊数据」的变型规则,那么即可本身伪造3个,然后径直调用
HTTP 接口发表留言。所以,大家得找二个不行伪造的硬标识。

事实上,有个很简短的法子:大家大约让 HTTP 请求也通过 iframe
发送。那样,后端通过 referer 即可检查和测试请求是或不是为 iframe 发起的。终归,XSS
是心有余而力不足伪造 referer 的!

事实上,有个很简短的不二法门:我们简直让 HTTP 请求也经过 iframe
发送。那样,后端通过 referer 即可检查和测试请求是或不是为 iframe 发起的。毕竟,XSS
是力不从心伪造 referer 的!

演示

演示

Demo:

Demo:

专注:那几个案例不是看能或不能够注入 XSS,而是看能否通过当前页面包车型地铁 JS
自动发留言!

小心:这几个案例不是看能还是不可能注入 XSS,而是看能或无法经过当前页面包车型客车 JS
自动发留言!

其余,通过第叁方服务器发布是不算的。那里为简便,省略了登录态;真实地方下,会话
Cookie 是 HttpOnly 的,不能够被 JS
获取到,也就不只怕让第①方服务器代替发布。

其它,通过第③方服务器发表是不算的。那里为简便,省略了登录态;真实地方下,会话
Cookie 是 HttpOnly 的,不能被 JS
获取到,也就不能够让第2方服务器代替发表。

细节:

细节:

  1. 使用者加载 safebutton.js,引入 SafeButton 类

  2. 使用者实例化 SafeButton 对象 A,创设出一个不相同源的 iframe
    作为按钮界面

  3. 用户点击 iframe 按钮后,内部变量 S 置为
    true,同时将点击音信告诉主页面(postMessage)

  4. 主页面收到新闻后,让 A 发生 onclick 事件

  5. 使用者将 HTTP 请求数据,通过 A 的 send 方法扔给 iframe

  6. iframe 校验内部变量 S:若为 true,则将数据经过 AJAX 发送;不然扬弃

  7. 服务器校验 referer:若为 iframe 的地点,则持续工作逻辑;不然甩掉

  8. iframe 收到 AJAX 再次回到后,将结果扔给主页面

  9. A 产生 onreceive 事件,个中饱含 HTTP 再次来到结果

  1. 使用者加载 safebutton.js,引入 SafeButton 类
  2. 使用者实例化 SafeButton 对象 A,创造出二个差别源的 iframe
    作为按钮界面
  3. 用户点击 iframe 按钮后,内部变量 S 置为
    true,同时将点击新闻告诉主页面(postMessage)
  4. 主页面收到音讯后,让 A 产生 onclick 事件
  5. 使用者将 HTTP 请求数据,通过 A 的 send 方法扔给 iframe
  6. iframe 校验内部变量 S:若为 true,则将数据经过 AJAX 发送;不然放弃
  7. 服务器校验 referer:若为 iframe 的地点,则继续工作逻辑;不然放任
  8. iframe 收到 AJAX 重返后,将结果扔给主页面
  9. A 爆发 onreceive 事件,个中含有 HTTP 重临结果

里面 No.6 的步子最为根本。正是这一步,使得未经用户点击,XSS 强制扔给
iframe 的音讯变得不行!

里头 No.6 的步骤最为首要。就是这一步,使得未经用户点击,XSS 强制扔给
iframe 的新闻变得不行美高梅开户网址,!

美高梅开户网址 4

美高梅开户网址 5

缺陷

当然,这么些方案阻挡不住点击恐吓 —— XSS 能够把 iframe
成分放大至全体页面,并安装全透明。

自然,这几个方案阻挡不住点击劫持 —— XSS 能够把 iframe
成分放大至一切页面,并设置全透明。

那样用户一旦在页面包车型客车其它地方点一下,iframe 的 S 状态就成为 true
了,于是就能绕过 No.6。

那般用户只要在页面包车型大巴别的地方点一下,iframe 的 S 状态就变成 true
了,于是就能绕过 No.6。

结尾

结尾

自然,安全防卫有胜过无。并且该方案的改建资金也不是非常的大,后端只是扩张3个referer
判断而已;前端也只需改造个别按钮,例如发帖按钮,像点赞那种按钮就没须要保证了。

本来,安全防卫有胜过无。并且该方案的改造资金也不是相当的大,后端只是扩张二个referer
判断而已;前端也只需改造个别按钮,例如发帖按钮,像点赞那种按钮就没须要保证了。

【编辑推荐】

【编辑推荐】

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图