关于 target="_blank"漏洞的分析
- 创建: 于 八月 30, 2016
关于 target="_blank"漏洞的分析 一、漏洞详情:
首先攻击者能够将链接(指向攻击者自己控制的页面的,该被控页面的js脚本可以对母页面进行部分权限操控,如跳转:opener.location)存储在应用上,并展现给受害者,诱导受害者点击,才能继续后续攻击;
漏洞根源:浏览器支持该功能; 二、防御方法: 有两种方法: 1、在用户输入链接的文本编辑器内和跳转链接时,将链接内容自动添加 rel=noopener特性(该特性不同浏览器支持情况不同,可以对不同浏览器添加不同的特性,如火狐还需添加 noreferrer特性;在一些老浏览器里面不支持这个属性,就可以通过js 手动设置 opener 为 null 来解决:
var newWnd = window.open();
newWnd.opener = null;
newWnd.location = url;
2、在处理点击链接时,不在新窗口打开,而是在老窗口刷新(a标签不加target="_blank" ;但该方法可能和国内用户使用习惯有冲突) 另,该漏洞属于浏览器漏洞,彻底杜绝的方法只能是浏览器不支持该特性;以上方法只是减少我们应用带给用户的风险,但如果其他应用存在该问题,用户依然会遭到钓鱼攻击,从而泄漏用户的各种信息;我们查看了百度、阿里等现有应用,均存在此问题;综上,个人觉得该漏洞的修复需求对我们并不高;
-------------------------------分割线-----------------------------------
今天看到知道创宇前端公众号有关于这个漏洞的分析,
再拿出来对比一下
关于 target="_blank"漏洞的分析的更多相关文章
- target='_blank' 安全漏洞
有关 target="_blank" 的安全缺陷 可能大家在写网页的时候经常给超链接加个属性 target="_blank",意思就是在浏览器新的窗口打开此超链 ...
- target="_blank" 导致的钓鱼攻击
挺久的漏洞,之前没仔细看现在看了下 直接构建实验环境: test1.html: <!DOCTYPE html> <html> <head> <meta cha ...
- jsp中target="_blank"的用法
对于点击查询按钮或a标签等,打开一个新页面并显示结果的做法如下: 1.form表单: 在form标签上加target="_blank"后,点击搜索按钮,显示查询结果时会打开一个新页 ...
- target="_blank"
target="_blank":出现在<a target="_blank" href="http://">中,在开发中,在一个系 ...
- [web安全]Web应用漏洞攻击分析与防范
网站攻击主要分为以下几类: (1) sql注入攻击 SQL Injection:就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令.它是利 ...
- wkwebview a target="_blank" 打不开链接的解决方案
- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigatio ...
- Google发布SSLv3漏洞简要分析报告
今天上午,Google发布了一份关于SSLv3漏洞的简要分析报告.根据Google的说法,该漏洞贯穿于所有的SSLv3版本中,利用该漏洞,黑客可以通过中间人攻击等类似的方式(只要劫持到的数据加密两端均 ...
- HTML <base> 标签的 target 属性 —— <base target="_blank" />
为页面上所有链接规定默认目标: <head> <base target="_blank" /> </head> <body> < ...
- <base target="_blank"/>
<base target=_blank> 是将基本链接的目标框架都改为新页打开
随机推荐
- 洛谷 [P3110] 驮运
题目略带一点贪心的思想,先跑三遍最短路(边权为一,BFS比SPFA高效) 一起跑总比分开跑高效,枚举两人在何点汇合,输出最小值. #include <iostream> #include ...
- BZOJ 3640: JC的小苹果 [概率DP 高斯消元 矩阵求逆]
3640: JC的小苹果 题意:求1到n点权和\(\le k\)的概率 sengxian orz的题解好详细啊 容易想到\(f[i][j]\)表示走到i点权为j的概率 按点权分层,可以DP 但是对于\ ...
- CNN网络架构演进:从LeNet到DenseNet
卷积神经网络可谓是现在深度学习领域中大红大紫的网络框架,尤其在计算机视觉领域更是一枝独秀.CNN从90年代的LeNet开始,21世纪初沉寂了10年,直到12年AlexNet开始又再焕发第二春,从ZF ...
- 通过WMI获取机器信息
PerformanceCounter的介绍就不多说了,MSDN上介绍的很详细: https://msdn.microsoft.com/zh-cn/library/system.diagnostics. ...
- [Python Study Notes]字符串处理技巧(持续更新)
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ...
- Maven编译问题
Maven构建的Project默认使用JDK1.5进行编译,要想使用JDK1.8进行编译,最好在项目的POM文件中加上以下的字段. <build> <plugins> < ...
- NSData所有API学习
www.MyException.Cn 网友分享于:2015-04-24 浏览:0次 NSData全部API学习. 学习NSData,在网上找资料竟然都是拷贝的纯代码,没人去解释.在这种网上 ...
- 听闰土大话前端之ES6是怎么来的
前言 相信做前端的朋友没有不知道ECMAScript6的,都知晓ES6新增了不少新的特性,但是你知道ES6是怎么来的吗?今天就让闰土来带大家大话ES6的前世今生.当然了,这篇文章会以扫盲为主,科普为辅 ...
- Javascript获取数组中最大和最小值
取出数组中最大值或最小值是开发中常见的需求,今天继续讲解如何获取javascript数组中最大和最小值. 1.排序法 首先我们给数组进行排序,可以按照从小到大的顺序来排,排序之后的数组中第一个和最后一 ...
- volatile简要解析
在当前的Java内存模型下,线程可以把变量保存在本地内存(比如机器的寄存器)中,而不是直接在主存中进行读写.这就可能造成一个线程在主存中修改了一个变量的值,而另外一个线程还继续使用它在寄存器中的变量值 ...