我不能让<label>标签被HTMLPurifier识别。
正在运行
$config = HTMLPurifier_Config::createDefault();
$config->set('HTML.Allowed', 'label');
$purifier = new HTMLPurifier($config);
echo $purifier->purify("<label>Link</label>");抛出Warning: Element 'label' is not supported (for information on implementing this, see the support forums)。
也没有使用addElement()
$config = HTMLPurifier_Config::createDefault();
$config->set('HTML.DefinitionID', 'test');
$config->set('HTML.DefinitionRev', 1);
if ($def = $config->maybeGetRawHTMLDefinition()) {
$def->addElement('label', 'Block', 'Inline', 'Common', array());
}
$purifier = new HTMLPurifier($config);
echo $purifier->purify("<label>Link</label>");仍然只返回Link,我希望在那里实现<label>Link</label>。有什么想法吗?
Update:使用$config->set('HTML.Trusted', true);做区别,但它禁用XSS保护。对我来说没有选择。
发布于 2019-06-21 11:34:38
更改配置后,需要确保清除vendor/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache/Serializer/中的缓存或使用
$config->set('Cache.DefinitionImpl', null);如果使用$config->set('HTML.Allowed', 'h1,h2,...');,还需要在那里添加label。
https://stackoverflow.com/questions/56702277
复制相似问题