You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在HTML Purifier过滤规则中允许CSS 配置代码应放在哪个文件

配置放置位置说明

你不需要修改HTML Purifier的源码文件,所有配置代码都写在你自己项目中调用HTML Purifier执行过滤的业务代码位置即可。如果多个位置需要复用配置,可以单独封装为公共配置文件。

完整可运行演示代码

<?php
// 引入依赖:composer安装方式引入自动加载
require_once 'vendor/autoload.php';
// 手动下载源码引入方式替换为以下代码,修改为你实际的源码路径
// require_once '/your/path/to/HTMLPurifier.auto.php';

// 初始化默认配置对象,你的自定义配置都写在这之后
$config = HTMLPurifier_Config::createDefault();

// 自定义配置项
$config->set('Core.Encoding', 'UTF-8'); // 替换为你项目实际使用的编码
$config->set('HTML.Doctype', 'HTML 4.01 Transitional');
// 注意:原示例中CSS.Trusted配置值错误,该配置为布尔类型,设为true即可放行所有CSS,生产环境不建议开启
$config->set('CSS.Trusted', true);
// 配置允许带style属性的HTML标签,需要允许哪些标签加样式就在这里补充
$config->set('HTML.Allowed','div[style],p[style],span[style]');
// 配置允许通过的CSS属性,逗号分隔,不需要开CSS.Trusted的话就在这里列需要放行的属性
$config->set('CSS.AllowedProperties', 'background-color,font-size,color');

// 用上面的配置实例化净化器
$purifier = new HTMLPurifier($config);

// 执行过滤示例
$userSubmittedHtml = '<div style="background-color: #ffe;color: #f00;">用户提交的带样式内容</div>';
$safeHtml = $purifier->purify($userSubmittedHtml);

// 测试输出过滤后结果
echo $safeHtml;
?>

CSS放行配置要点

  • 要允许对应HTML标签携带样式,必须先在HTML.Allowed配置中为对应标签加上[style]属性声明
  • 生产环境建议关闭CSS.Trusted,在CSS.AllowedProperties中逐个添加需要放行的CSS属性,避免恶意样式注入
  • 配置可单独抽离为公共文件,比如命名为htmlpurifier_common.php,业务代码需要过滤时直接引入该文件即可复用配置,不需要重复编写

内容的提问来源于stack exchange,提问作者Richard Vi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 13:36:02