Php 使用html5和css3配置htmlpurifier
我正在使用htmlpurifier。我有一些疑问,如下所示 1-我的配置文件包含Php 使用html5和css3配置htmlpurifier,php,html,css,htmlpurifier,Php,Html,Css,Htmlpurifier,我正在使用htmlpurifier。我有一些疑问,如下所示 1-我的配置文件包含 $config->set('HTML.Trusted' ,true); $config->set('CSS.Trusted', true); 但一个简单的谷歌让我登陆到一些页面,在这些页面上有不使用*.Trusted作为“true”的建议 我不明白为什么我们不应该将*.Trusted设置为true?你能给我解释一下吗。因为如果我删除它,我就不会得到内联css?即使CSS.AllowTricky也帮不上
$config->set('HTML.Trusted' ,true);
$config->set('CSS.Trusted', true);
但一个简单的谷歌让我登陆到一些页面,在这些页面上有不使用*.Trusted作为“true”的建议
我不明白为什么我们不应该将*.Trusted设置为true?你能给我解释一下吗。因为如果我删除它,我就不会得到内联css?即使CSS.AllowTricky也帮不上忙
2-我发现HTML5和CSS3选择器是不允许的
就像htmlpurifier/library/htmlpurifier/Filter/ExtractStyleBlocks.php上的代码一样
// - No Unicode support
// - No escapes support
// - No string support (by proxy no attrib support)
// - element_name is matched against allowed
// elements (some people might find this
// annoying...)
// - Pseudo-elements one of :first-child, :link,
// :visited, :active, :hover, :focus
// handle ruleset
$selectors = array_map('trim', explode(',', $selector));
$new_selectors = array();
foreach ($selectors as $sel) {
//some code to filter css selectors
}
不包含任何允许使用“[class*=”grid-“]”等选择器的代码。因此,所有这些css在净化后都会被移除。是否有办法允许所有CSS3
3-是否有某种方法允许所有HTML5标记?例如,如果我们有类似html的
<section class="mainhead">
<div class="subhead"> </div> </section>
行不通
HTML.Trusted
设置为true
会启用不安全的元素,例如script
和表单。例如,如果您想允许表单,但不想允许脚本,只需将它们添加到HTML中即可。禁止元素
:
$config->set('HTML.Trusted',true);
$config->set('HTML.bankedenelements',['script']);
HTMLPurifier\u Config
替换为HTMLPurifier\u HTML5Config
你找到解决办法了吗?如果是的话,你能把它贴在这里吗?
.mainhead .subhead { //some css}