PHP 之使用HTMLPurifier过滤XSS

一、HTMLPurifier下载

http://htmlpurifier.org/

二、cleanXSS函数封装

复制代码
function cleanXSS($content)
{
    require_once 'xss/htmlpurifier/library/HTMLPurifier.auto.php';
    
    $config = HTMLPurifier_Config::createDefault();
    
     // 允许的html标签
    // $config->set('HTML.Allowed', 'img[src|style],a[href]');
    //设置允许的属性
    // $config->set('HTML.AllowedAttributes', array('style' => true, 'src' => true));
    //允许特定的CSS属性
    // $config->set('CSS.AllowedProperties', 'width,height');
    //禁止css类名
    // $config->set('Attr.ForbiddenClasses', 'test, aa');

    $purifier = new HTMLPurifier($config);
    $clean_html = $purifier->purify($content);
    return $clean_html;
}

三、简单示例

过滤前

复制代码
<img class="aa" src="https://www.test.com/api/avatar/default.jpg?v=1754031794" style="width:100px;" onerror="alert(1)"/><a href="http://www.baidu.com" class="test" onclick="alert('xss')">123</a>

过滤后

复制代码
<img class="aa" src="https://www.test.com/api/avatar/default.jpg?v=1754031794" style="width:100px;" alt="default.jpg?v=1754031794" /><a href="http://www.baidu.com" class="test">123</a>
相关推荐
板鸭〈小号〉20 小时前
Socket网络编程(1)——Echo Server
开发语言·网络·php
明天会有多晴朗20 小时前
C语言入门教程(第1讲):最通俗的C语言常见概念详解与实战讲解
c语言·开发语言·c++
华仔啊20 小时前
前端必看!12个JS神级简写技巧,代码效率直接飙升80%,告别加班!
前端·javascript
excel20 小时前
dep.ts 逐行解读
前端·javascript·vue.js
爱上妖精的尾巴20 小时前
5-20 WPS JS宏 every与some数组的[与或]迭代(数组的逻辑判断)
开发语言·前端·javascript·wps·js宏·jsa
excel21 小时前
Vue3 响应式核心源码全解析:Dep、Link 与 track/trigger 完整执行机制详解
前端
gopher951121 小时前
Go 语言的 panic 和 recover
开发语言·golang
前端大卫21 小时前
一个关于时区的线上问题
前端·javascript·vue.js
豆沙沙包?21 小时前
2025年--Lc165--H637.二叉树的层平均值(二叉树的层序遍历)--Java版
java·开发语言
whltaoin21 小时前
中秋赏月互动页面:用前端技术演绎传统节日之美
前端·javascript·html·css3·中秋主题前端