c 过滤html标签保留纯净的p和img,替换字符串中的HTML实体,避免使用<img/>标记

博客讨论了在处理用户输入时如何平衡XSS防御与保持表情符号原样的问题。作者提到,当前的实现将HTML实体转换为防止XSS攻击,但同时导致表情符号丢失。提出了使用正则表达式分割文本并逐个处理的方案,但担忧其效率和可能的绕过。文章寻求优雅的解决方案,考虑使用第三方库、PHP预处理或其他技术,并欢迎前端、安全和文本处理领域的建议。
摘要由CSDN通过智能技术生成

我有以下输入:

Hi! How are you?

Wassup? :P

LOOOL!!! :D :D :D

然后通过表情符号库运行,它就变成了这个:

Hi! How are you?

Wassup?

LOOOL!!!

我有一个逃避HTML entites的功能来阻止XSS。因此,在第一行的原始输入上运行它将产生:

Hi! How are you? <script>//NOT EVIL!</script>

现在我需要逃避所有输入,但同时我需要保持表情符号处于初始状态。因此,如果有<:-p>

我正在考虑对情感文本进行正则表达式分割。然后自己处理每个部分,然后将字符串连接在一起,但我不确定Regex被绕过的容易程度如何?我知道格式永远是这样的:

[]</p><p>[empty string]</p><p>[]

使用列表可能很慢,因为我需要在可能有20-30-40个表情符号的文本上运行该正则表达式。另外,可能需要处理5-10-15条短信。什么可以是一个优雅的解决方案?我准备使用第三方库或jQuery。 PHP预处理也是可能的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值