nuxt3:vue-dompurify-html

文章介绍了如何使用vue-dompurify-html插件在Vue(特别是Nuxt3项目)中避免v-html指令引发的跨站脚本(XSS)攻击。通过安装并配置该插件,可以在动态渲染内容时确保安全性,同时提到了内联样式可能存在的问题及其解决方案。
摘要由CSDN通过智能技术生成

一、引出vue-dompurify-html

 

v-html可能引起跨站脚本攻击(Cross-Site Scripting 简称 XSS)。

所以,在网站上动态渲染任意 HTML 是非常危险的,因为容易导致 [XSS 攻击]。只在可信内容上使用 v-html,永不用在用户提交的内容上。

仅用于展示的内容个人觉得可以使用。为了避免出现特殊情况,本文介绍一个插件“vue-dompurify-html”。

二、npm

vue-dompurify-html - npm

三、nuxt3项目使用

3.1、安装vue-dompurify-html

pnpm add vue-dompurify-html

3.2、plugins/vueInject.js

// 防止使用v-html发生跨站脚本攻击XSS
import VueDOMPurifyHTML from 'vue-dompurify-html'
export default defineNuxtPlugin(nuxtApp => {
    nuxtApp.vueApp.use(VueDOMPurifyHTML)
})

3.4、业务文件使用

<div v-dompurify-html="'<div>test</div>'"></div>
// 行内再写上行内样式可能会有问题,待继续研究

 问题如图:

 同样的代码下边方式即可:

<div v-dompurify-html="str1"></div>

let str1: string = '<div style="color:red;" class="html"> test1 </div>'

// 推荐这样的方式

经过测试,成功。

四、欢迎交流指正,关注我,一起学习。

参考链接:

vue项目:解决v-html可能带来的XSS是跨站脚本攻击_snowball@li的博客-CSDN博客_vue-dompurify-html

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值