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

npm库xss依赖的使用方法和vue3 中Web富文本编辑器 wangeditor 使用xss库解决 XSS 攻击的方法

npm库xss依赖的使用方法和vue3 中Web富文本编辑器 wangeditor 使用xss库解决 XSS 攻击的方法

    • 1. npm库xss依赖的使用方法
      • 1.1 xss库定义
      • 1.2 xss库功能
    • 2. vue3 中 wangeditor 使用xss库解决 XSS 攻击的方法和示例
      • 2.1 在终端执行如下命令安装 xss 依赖
      • 2.2 在使用 wangeditor 的地方引入 xss 依赖
      • 2.3 xss 依赖使用示例

1. npm库xss依赖的使用方法

1.1 xss库定义

  • npm中有一个依赖名为xss,是一个可以对用户输入的内容进行过滤以避免遭受 XSS 攻击的js模块。

1.2 xss库功能

  • 不定义白名单,也不自定义处理函数时,采用xss库默认的过滤规则。
  • 可配置标签及标签属性白名单,作为允许的HTML标签及标签属性;
  • 可自定义处理函数,针对任意标签及标签属性进行自定义处理。

2. vue3 中 wangeditor 使用xss库解决 XSS 攻击的方法和示例

2.1 在终端执行如下命令安装 xss 依赖

npm install xss -S

2.2 在使用 wangeditor 的地方引入 xss 依赖

import xss from 'xss'

2.3 xss 依赖使用示例

<template><div><div ref="myEditor" style="width: 100%"></div></div>
</template><script lang="ts" setup>
import xss from 'xss'
import wangeditor from 'wangeditor'let mailData = reactive({id: ''
})
const myEditor = ref(null)
let editorInstance = null
onMounted(() => {createWangeditor()
})
const createWangeditor = () => {editorInstance = new wangeditor(myEditor.value)let config = editorInstance.customConfig ?  editorInstance.customConfig :  editorInstance.configconfig.menus = ['head', // 标题'bold', // 加粗'fontName', // 字体'fontSize', // 字号'underline', // 下划线'strikeThrough', // 删除线'indent', // 'lineHeight', // 行高'foreColor', // 字体颜色'backColor', // 背景色'list', // 'justify' // ]config.fontNames = ['黑体','仿宋','楷体','标楷体','华文仿宋','华文楷体','宋体','微软雅黑']editorInstance.create()
}
onBeforeUnmount(() => {editorInstance = null
})// 查询文本编辑器默认内容接口
const handleChange = () => {mailData.id = ''editorInstance.txt.html('')queryDefaultContent().then(res => {const {code, data} = resif(code === '000') {let {id, content} = datamailData.id = id// 不定义白名单,也不自定义处理函数时,采用xss库默认的过滤规则let safeContent = xss(content) // 进行xss攻击过滤editorInstance.txt.html(safeContent)}})
}
</script>
http://www.lryc.cn/news/493365.html

相关文章:

  • 微信小程序蓝牙writeBLECharacteristicValue写入数据返回成功后,实际硬件内信息查询未存储?
  • 5G NR:带宽与采样率的计算
  • go 和java 编写方式的理解
  • C# 7.1 .Net Framwork4.7 VS2017环境下,方法的引用与调用
  • etcd、kube-apiserver、kube-controller-manager和kube-scheduler有什么区别
  • 每日一题 LCR 057. 存在重复元素 III
  • 使用IDEA编写测试用例,复杂度校验
  • 搭建私有云存储
  • 【从零开始的LeetCode-算法】3304. 找出第 K 个字符 I
  • 深入解析分布式遗传算法及其Python实现
  • gitee:创建仓库,存入本地文件至仓库
  • 计算分数的浮点数值
  • 在 C/C++ 中,volatile 关键字的作用是什么?.volatile 关键字与 const 关键字有什么区别?
  • golang debug调试
  • 自动化运维(k8s)之微服务信息自动抓取:namespaceName、deploymentName等全解析
  • 07 初始 Oracle 优化器
  • Java对象与XML互相转换(xstream)
  • 一键生成唯美动漫图:ComfyUI-tPonynai详细搭建教程
  • C++设计模式(工厂模式)
  • 多阶段报童问题动态规划求解,Python 实现
  • 【C++进阶篇】像传承家族宝藏一样理解C++继承
  • Java基础面试题09:Java异常处理完成以后,Exception对象会发生什么变化?
  • mysql sql语句 between and 是否边界值
  • Java接收LocalDateTime、LocalDatee参数
  • 方差分析、相关分析、回归分析
  • SQLModel入门
  • 单片机蓝牙手机 APP
  • PostgreSQL在Linux环境下的常用命令总结
  • Unity shaderlab 实现LineSDF
  • Ubuntu中的apt update 和 apt upgrade