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

Make sure bypassing Vue built-in sanitization is safe here.

一、问题描述

二、问题分析

XSS(跨站脚本攻击)

XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript,但实际上也可以包括Java、 VBScript、ActiveX、 Flash 或者甚至是普通的HTML。攻击成功后,攻击者可能得到包括但不限于更高的权限(如执行一些操作)、私密网页内容、会话和cookie等各种内容。
我们想个问题:如果你能够在别人的网站里植入JS,你会干嘛?如果我们可以在一个网站里植入自己的js代码,我们就拥有了无限的可能,比如:无限弹窗、篡改网站页面、获取用户信息等等。甚至你可以在网站里植入广告,以此来获取大量利润,这都是完全可以实现的。所以XSS的危害是巨大的,作为一个前端开发人员不得不小心。
 

innerHTML、document.write()、eval这三个,只要网站中使用了这三种输出方式,那么容易引入XSS攻击。

由于v-html会执行所有的html代码,因此会执行所有可能带危险的html代码

 2.在使用v-html时为了防止XSS攻击,可以安装 npm install xss 插件,但是我们在渲染富文本编辑的文章时,使用XSS会把除了标签和内容之外的所有东西都给过滤掉,如calss,style过滤掉,那么样式就展现不出来了,导致美观度不够。

三、问题解决

  1. 转义特殊字符

此处代码已经做转义,咱不算问题

  1. 使用封装后的,比如vue-dompurify-html,使用vue-dompurify-html既可以保留样式和防止xss攻击
// 安装:npm install vue-dompurify-html// 引入:import VueDOMPurifyHTML from 'vue-dompurify-html'Vue.use(VueDOMPurifyHTML)// 使用:<div v-dompurify-html="rawHtml"></div>

问题解决方案:

输入做过滤,输出做转义

过滤:根据业务需求进行过滤,比如输入点要求输入手机号,则只允许输入手机号格式的数字;
所有输出到前端的数据都根据输出点进行转义,比如输出到html中进行html实体转义,输入到JS里面的进行js转义;

防止执行js代码

http://www.lryc.cn/news/251724.html

相关文章:

  • 企业的内容站点SEO应该怎么做更有效果?
  • mac电脑下载Netflix Mac(奈飞客户端)安装教程
  • PCL 计算点云图中任意两点的欧式距离
  • 使用OssImport 工具将文件上传到阿里云OSS
  • 充电桩新老国标兼容性分析
  • ApiSix的docker 容器化部署及使用
  • 第十节HarmonyOS 使用资源引用类型
  • ntopng如何将漏洞扫描与流量监控相结合,以提高网络安全性
  • 使用coco数据集进行语义分割(1):数据预处理,制作ground truth
  • 神经网络 模型表示2
  • ubuntu使用SSH服务远程登录另一台设备
  • 读书笔记:《Effective Modern C++(C++14)》
  • PCL 点云加权均值收缩
  • 计算机毕业设计 基于协同推荐的白酒销售管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解
  • React-hook-form-mui(五):包含内嵌表单元素的表单
  • 【内网安全】搭建网络拓扑,CS内网横向移动实验
  • 1、输入一行字符,分别统计出其中的英文字母、空格、数字和其他字符的个数。
  • 戴尔科技推出全新96核Precision 7875塔式工作站
  • 论文阅读——DINOv
  • JOSEF电流继电器 DL-33 整定范围0.5-2A 柜内安装板前接线
  • RCE绕过
  • Qt应用开发--国产工业开发板全志T113-i的部署教程
  • css 常用动画效果
  • 【读书笔记】微习惯
  • Oracle SQL优化
  • C++实现ATM取款机
  • 【数电笔记】11-最小项(逻辑函数的表示方法及其转换)
  • Gradio库的安装和使用教程
  • 【BLE基础知识】--Slave latency设置流程及空中包解析
  • 数据结构之堆排序以及Top-k问题详细解析