关于 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"漏洞的分析的更多相关文章

  1. target='_blank' 安全漏洞

    有关 target="_blank" 的安全缺陷 可能大家在写网页的时候经常给超链接加个属性 target="_blank",意思就是在浏览器新的窗口打开此超链 ...

  2. target="_blank" 导致的钓鱼攻击

    挺久的漏洞,之前没仔细看现在看了下 直接构建实验环境: test1.html: <!DOCTYPE html> <html> <head> <meta cha ...

  3. jsp中target="_blank"的用法

    对于点击查询按钮或a标签等,打开一个新页面并显示结果的做法如下: 1.form表单: 在form标签上加target="_blank"后,点击搜索按钮,显示查询结果时会打开一个新页 ...

  4. target="_blank"

    target="_blank":出现在<a target="_blank" href="http://">中,在开发中,在一个系 ...

  5. [web安全]Web应用漏洞攻击分析与防范

    网站攻击主要分为以下几类: (1) sql注入攻击 SQL Injection:就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令.它是利 ...

  6. wkwebview a target="_blank" 打不开链接的解决方案

    - (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigatio ...

  7. Google发布SSLv3漏洞简要分析报告

    今天上午,Google发布了一份关于SSLv3漏洞的简要分析报告.根据Google的说法,该漏洞贯穿于所有的SSLv3版本中,利用该漏洞,黑客可以通过中间人攻击等类似的方式(只要劫持到的数据加密两端均 ...

  8. HTML <base> 标签的 target 属性 —— <base target="_blank" />

    为页面上所有链接规定默认目标: <head> <base target="_blank" /> </head> <body> < ...

  9. <base target="_blank"/>

    <base target=_blank> 是将基本链接的目标框架都改为新页打开

随机推荐

  1. 【转】AWK常用

    awk是个优秀文本处理工具,可以说是一门程序设计语言.下面是awk内置变量. 一.内置变量表 属性 说明 $0 当前记录(作为单个变量) $1~$n 当前记录的第n个字段,字段间由FS分隔 FS 输入 ...

  2. ehcache模糊批量移除缓存

    目录 前言 实现 总结 前言 众所周知,encache是现在最流行的java开源缓存框架,配置简单,结构清晰,功能强大.通过注解@Cacheable可以快速添加方法结果到缓存.通过@CacheEvic ...

  3. nodejs cluster模块初探

    大家都知道nodejs是一个单进程单线程的服务器引擎,不管有多么的强大硬件,只能利用到单个CPU进行计算.所以,为了使用多核cpu来提高性能 就有了cluster,让node可以利用多核CPU实现并行 ...

  4. 02_Python基本数据类型

    一.什么是数据 数据是描述客观事物的字符(比如95,不同的语义可表示成绩或体重),是计算机可以操作的对象,能够被计算机识别并输入给计算机处理的符号集合. 数据不仅仅包含整形,还包括图像.音乐.视频等非 ...

  5. Oracle中的游标

    Oracle游标 概念:内存中的一块区域,存放select结果 游标用来处理从数据库中检索的多行记录(使用SELECT语句).利用游标,程序可以逐个地处理和遍历一次检索返回的整个记录集.一.显示游标( ...

  6. linux上的组管理

    上一次我们谈了CentOS上的用户管理,现在我们再来谈下CentOS上的用户组管理. groupadd创建一个新的组 用法如下: groupadd [选项] groupname 常用选项: -f 强制 ...

  7. 分享我自己的一个最小化安装CentOS6的初始化脚本

    在自己的虚拟机上使用的基于CentOS6的系统初始化脚本 #!/bin/bash # #Filename:system_init.sh #Description:系统安装完成后,对系统进行一些配置,以 ...

  8. 浅谈python模块的导入操作

    1.什么是模块 在Python中有一个概念叫做模块(module). 所谓模块,就是将代码量较大的程序分割成多个有组织的,彼此独立但双能互相交互的代码片段, 这些自我包含的有组织的代码段就是模块. 2 ...

  9. [代码]JS原生Ajax,GET和POST

    javascript/js的ajax的GET请求: <script type="text/javascript"> /* 创建 XMLHttpRequest 对象 */ ...

  10. VS2012如何调试JS

    下面的操作步骤描述了怎样利用vs.net中的调试器来调试javascript: 1,首先,要让你的ie允许调试脚本,具体步骤如下:    打开ie->工具菜单->inter选项->高 ...