当前位置:网站首页>正则过滤字符串中 script 标签
正则过滤字符串中 script 标签
2022-08-04 16:59:00 【xggllc】
最近刚好用到模板字符串相关的编辑功能,记录一下。
需求是 模板字符串中不允许出现<script> 标签、不允许有javascript: 和 .js 文件引用,
主要方法如下:
clearScriptTag (str) {
const reg = /<script[^>]*>([\S\s]*?)<\/script>/gim;
// 清除标签内 相关 xss 安全代码
const reg1 = /javascript:/gim;
const reg2 = / *.js/gim;
if (reg.test(str)) {
str = str.replace(reg, '');
this.$message.error('非法标签 <script> 已被替换为空');
}
if (reg1.test(str)) {
str = str.replace(reg1, '');
this.$message({
message: '非法代码javascript:已被替换为空',
type: 'error',
offset: 60
});
}
if (reg2.test(str)) {
str = str.replace(reg2, '');
this.$message({
message: '非法*.js已被替换为空',
type: 'error',
offset: 100
});
}
return str;
},测试:
// 输入字符串为:
let str = '<div>
<span>测试文字</span>
</div>
<script>asdfasdfs</script>
<script></script>
<a></a>
<script>asdfasdfs sdf234 asd fasdfs</script>
<script>asdfasdfs sdf234 asd fa
sdfs</script>
<span src:"javascript:aaa//xx.js">测试文字</span>
<span src:"javascript:aaa//xaaax.js">测试文字</span>
<span src:"javascript:aaa//xx.js">javascript:aaa//xx.js</span>'
// 过滤后字符串为:
'<div>
<span>测试文字</span>
</div>
<a></a>
<span src:"aaa//xx">测试文字</span>
<span src:"aaa//xaaax">测试文字</span>
<span src:"aaa//xx">aaa//xx</span>'
边栏推荐
- SAP ABAP SteammPunk 蒸汽朋克的最新进展 - 嵌入式蒸汽朋克
- 【LeetCode每日一题】——540.有序数组中的单一元素
- 15 days to upgrade to fight monsters and become a virtual fashion creator
- 移动中兴ZXV10 B860AV2.1-A_S905L2_MT7668_线刷固件包
- 西西成语接龙小助手
- 安装win11提示开启安全模式如何解决
- leetcode 48. Rotate Image 旋转图像(Medium)
- jMeter Transaction Controller 学习笔记
- WEB 渗透之SSTI 模板注入
- WPF 修改 ItemContainerStyle 鼠标移动到未选中项效果和选中项背景
猜你喜欢

移动CM101s_MV100_EMMC_M8233_强刷后全分区线刷固件包

Hubei Mobile ZTE B860AV2.1_S905L_ flash firmware package

移动魔百盒CM201-1_CW_S905L2_MT7668_线刷固件包

HCIP WPN 实验

代码重构:面向单元测试

shell脚本详解-------循环语句wuile循环和until循环

JVM内存和垃圾回收-08.方法区

手把手教你搭建一个Minecraft 服务器

Mobile magic box CM211-1_YS foundry _S905L3B_RTL8822C_wire brush firmware package

接口测试项目(非常值得练手)
随机推荐
【笔试题】-【日常记录】
机器人示教编程与离线编程的优缺点对比
icu是哪个国家的域名?icu是什么域名?
如何模拟后台API调用场景,很细!
御神楽的学习记录之基于FPGA的AHT10温湿度数据采集
黑龙江移动新魔百盒M411A_2+8_S905L3A_线刷固件包
安装失败怎么办
机器学习(十一):KNN(K近邻)
九联_UNT400G_S905L2_(联通)_线刷固件包
一张图片怎么旋转90度。利用ps
数据库内核面试中我不会的问题(2)
机器学习(十三):支持向量机(SVM)
JVM内存和垃圾回收-08.方法区
Mobile BesTV_R3300-L_S905L_8189_wire brush firmware package
全球电子产品需求萎靡:三星越南工厂大幅压缩产能,减少工人工作日
redis
dotnet core 隐藏控制台
机器学习(十):朴素贝叶斯
8月5日,麒麟信安邀您相约鲲鹏开发者创享日·长沙站!
shell脚本详解-------循环语句wuile循环和until循环