当前位置:

首页 > 编程开发 > ThinkPHP如何防止XSS蠕虫_富文本白名单过滤策略【详解】

ThinkPHP如何防止XSS蠕虫_富文本白名单过滤策略【详解】

ThinkPHP 6.x 防御 XSS 蠕虫:富文本白名单过滤的正确打开方式 说白了,用 htmlspecialchars() 处理富文本,那就是直接把编辑器给废了——所有标签被转义成普通文本,页面当然没法渲染。这根本不是防 XSS,这是自废武功。真正能在安全与可用之间找到平衡的,只有白名单式的 H

ThinkPHP 6.x 防御 XSS 蠕虫:富文本白名单过滤的正确打开方式

说白了,用 htmlspecialchars() 处理富文本,那就是直接把编辑器给废了——所有标签被转义成普通文本,页面当然没法渲染。这根本不是防 XSS,这是自废武功。真正能在安全与可用之间找到平衡的,只有白名单式的 HTML 净化方案。而在 ThinkPHP 6.x 的生态里,唯一靠谱的选择就是 HTMLPurifier。但请注意,它必须手动配置得死死的,默认配置?那等于在请 XSS 蠕虫进门。

我先说个核心判断:开箱即用的 HTMLPurifier::getInstance() 默认只允许极简标签组通行,连 都会被干掉,业务根本跑不起来。更危险的是,它默认留着 on* 事件、ja vascript: 协议、data: 协议、内联 style 表达式——这就等于是把门虚掩着,任由 XSS 蠕虫往里钻。

ThinkPHP如何防止XSS蠕虫_富文本白名单过滤策略【详解】

为什么直接调用 HTMLPurifier::getInstance() 会出事

你想啊,默认配置下它能放过什么?极简标签。可业务需要的