企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
在富文本编辑器里输入html代码是正常的,所以使用htmlspecialchars函数是不起作用的 安装 ``` composer require ezyang/htmlpurifier ``` 成功后子composer.son多出这句 ``` "ezyang/htmlpurifier": "^4.12" ``` 在config.php下定义全局过滤函数 ``` 'default_filter' => 'removeXSS',//htmlspecialchars,removeXSS ``` common.php添加如下 ``` function removeXSS($dirty_html){ if ($dirty_html=== ''||$dirty_html === (string)((int)$dirty_html)) { return $dirty_html; } require '../vendor/autoload.php'; //或者 //require_once 'library/HTMLPurifier.includes.php'; // 载入核心文件 // 生成配置对象 配置文档http://htmlpurifier.org/live/configdoc/plain.html $config = HTMLPurifier_Config::createDefault(); // 清理配置缓存,上线时关掉这句 $config->set('Cache.DefinitionImpl', null); $config->set('HTML.Allowed','a[href|title]'); echo 3; //var_export($config, FALSE);//true为返回,false为输出 // 使用配置生成过滤用的对象 $purifier = new HTMLPurifier($config); // 过滤字符串 $clean_html = $purifier->purify($dirty_html); return $clean_html; } ``` 注意 必须使用input函数或者Request类接受表单数据才会触发 定义的全局过滤函数