概述
为了防止XSS攻击,我们经常遇到的一个需求就是需要将用户编辑的内容过滤之后再保存在数据库中或者显示在页面上。HTMLPurifier无疑是一个合适的选择。所以HTMLPurifier自定义配置是我们需要了解的。本文只针对在Yii2框架中使用HTMLPurifier的配置情况展开讨论。
Yii2中的HTMLPurifier
在Yii2文档中关于HTMLPurifier的介绍很少,只提到可以使用HtmlPurifier::process($html, $config)这样方式过滤html。我们还是去读一下源码吧。
<?php
namespace yii\helpers;
class BaseHtmlPurifier
{
public static function process($content, $config = null)
{
$configInstance = \HTMLPurifier_Config::create($config instanceof \Closure ? null : $config);
$configInstance->autoFinalize = false;
$purifier = \HTMLPurifier::instance($configInstance);
$purifier->config->set('Cache.SerializerPath', \Yii::$app->getRuntimePath());
$purifier->config-