【问题标题】:configure htmlpurifier with html5 and css3使用 html5 和 css3 配置 htmlpurifier
【发布时间】:2015-05-07 13:41:15
【问题描述】:

我正在使用 htmlpurifier。我有一些疑问如下。

1- 我的配置文件包含

$config->set('HTML.Trusted' ,true);
$config->set('CSS.Trusted', true);

但是,一个简单的 Google 让我进入了建议不要使用 *.Trusted as "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- 有没有办法允许所有 HTML 5 标签?例如,如果我们有类似 html 的

<section class="mainhead">
<div class="subhead"> </div> </section>

然后 purifier 删除,因此一些 css 像

.mainhead .subhead { //some css}

不会工作。

【问题讨论】:

  • 您找到解决方案了吗?如果是这样,你能把它贴在这里吗?

标签: php html css htmlpurifier


【解决方案1】:
  1. HTML.Trusted 设置为true 会启用不安全元素,例如script 和表单。例如,如果您想允许表单,但不想允许脚本,只需将它们添加到HTML.ForbiddenElements

    $config->set('HTML.Trusted', true);
    $config->set('HTML.ForbiddenElements', ['script']);
    
  2. 不支持 CSS3 选择器 - 有一个 pending Pull Request,但它已停用一年多(截至 2019 年 8 月)。我认为这不会很快改变。

  3. 至于 HTML5 支持 - 您可以使用扩展包 https://github.com/xemlock/htmlpurifier-html5(我是它的作者),它添加了符合规范的 HTML5 元素定义。它的用法几乎与纯 HTML Purifier 相同 - 您只需将 HTMLPurifier_Config 替换为 HTMLPurifier_HTML5Config

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-04
    • 2014-05-25
    相关资源
    最近更新 更多