gpt4 book ai didi

php - 使用 html5 和 css3 配置 htmlpurifier

转载 作者:行者123 更新时间:2023-11-28 17:13:41 25 4
gpt4 key购买 nike

我正在使用 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}

不会工作。

最佳答案

  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 净化器相同 - 您只需将 HTMLPurifier_Config 替换为 HTMLPurifier_HTML5Config

关于php - 使用 html5 和 css3 配置 htmlpurifier,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28890523/

25 4 0
文章推荐: 安装 SSL 证书后缺少 CSS 样式
文章推荐: jquery - 如果没有空间可填充,如何使
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com