htmlpurifier 相关问题

PHP的HTML过滤库

HTMLPurifier,检查整个HTML文档

我正在使用 HTMLPurifier 检查整个 HTML 文档中是否存在 XSS。问题是它似乎删除了 标签内以外的任何内容。但是,我想保留一切,只是我...

回答 4 投票 0

如何在 HTML Purifier 中删除 img 标签的 alt 属性?

默认情况下,HTML Purifier 会为每个 img 标签添加一个 alt 属性(确实很烦人的行为)。所以 变成 文档提及...

回答 2 投票 0

HTMLPurifier 将 £ 转换回 £

我的 HTMLPurifier 遇到问题,它似乎正在将 英镑 回到 英镑 我当前的配置是: $config = \HTMLPurifier_Config::createDefault(); $config->s...

回答 1 投票 0

允许在 HTMLPurifier 中解析完整的 html

这是我长期以来遇到的一个问题 - 我目前接受用户的完整 html 页面作为输入,并希望过滤/清理它。 HTMLpurifier 的问题是它删除了头部......

回答 4 投票 0

为什么用PHP净化html后表情符号和特殊字符无法正常显示?

所以我有一个博客,允许用户使用 TinyMCE 在一个位置编写内容。然后内容被清理、验证并存储在数据库中。它显示在不同的页面上。漂亮

回答 1 投票 0

使用 Html Purifier 从提交的 html 页面内容中提取样式块

如何使用html净化器提取这样的块样式。 我尝试使用下面的代码从 html 内容中提取样式。 但我不能; $config = \HTMLPurifier_Config::createDefault(); $

回答 1 投票 0

URI.SafeIframeRegexp 不允许使用 HTMLPurifier 播放 YouTube 视频

我正在尝试使用 HTMLPurifier 允许 YouTube 视频使用该代码: 需要一次__DIR__。 '/lib/HTMLPurifier/HTMLPurifier.auto.php'; $config = HTMLPurifier_Config::createDefault(); $config -> ...

回答 1 投票 0

HTMLPurifier 允许块引用和带有 cite 的 ins 标签

我希望 HTMLPurifier 中允许使用以下标签。 例如: 我希望 HTMLPurifier 中允许使用以下标签。 例如: <ins cite="blog.html"></ins> <blockquote cite="https://www.google.com/"></blockquote> 谢谢你 您可以将其他标签和属性添加到允许的列表中。例如,要添加具有 blockquote 属性的 ins 和 cite 标签: $config = HTMLPurifier_Config::createDefault(); $def = $config->getHTMLDefinition(true); $def->addElement('blockquote', 'Block', 'Flow', 'Common', ['cite' => 'URI']); $def->addElement('ins', 'Inline', 'Flow', 'Common', ['cite' => 'URI']); $purifier = new HTMLPurifier($config); 现在,当您使用此 $purifier 实例来净化 HTML 时,除了默认允许的标签和属性之外,它将允许 blockquote 和 ins 标签的 cite 属性。 记住仔细自定义允许的元素和属性,以匹配您的特定用例和安全要求。始终验证和清理用户输入,以防止应用程序中的 XSS 攻击和其他安全漏洞。

回答 1 投票 0

Htmlpurifier 没有在允许的标签中添加一些标签

我想配置 htmlpurifier,以便它允许 html 中的标签。 Htmlpurifier 与标签表、tbody 的白名单不起作用。 官网demo模式下,table标签也是

回答 1 投票 0

为什么带有 mews/purifier 的 YouTube 链接不支持元素“iframe”?

在带有 mews/purifier 的 laravel 8 应用程序中:3.4, 我需要显示 youtube 视频(使用 定义 <question vote="0"> <p>在带有 mews/purifier 的 laravel 8 应用程序中:3.4, 我需要显示 youtube 视频(使用 <iframe ...)</p> 定义 <p>当 youtube iframe 块被 \Purifier::clean( 方法我发现分支清除时 <a href="https://stackoverflow.com/questions/25649525/laravel-package-purifer-not-work-with-iframe">Laravel Package Purifer 不适用于 iframe</a></p> <p>并尝试修改我的 config/purifier.php 文件,例如:</p> <pre><code>&#39;settings&#39; =&gt; [ &#39;default&#39; =&gt; [ &#39;HTML.Doctype&#39; =&gt; &#39;HTML 4.01 Transitional&#39;, // I added this iframe rule &#39;HTML.Allowed&#39; =&gt; &#39;iframe[src|width|height|class|frameborder],h1,h2,h3,div,blockquote,table,tbody,tr,td,figure,b,strong,i,em,u,a[href|title],ul,ol,li,p[style],br,span[style],img[width|height|alt|src]&#39;, &#39;CSS.AllowedProperties&#39; =&gt; &#39;font,font-size,font-weight,font-style,font-family,text-decoration,padding-left,color,background-color,text-align&#39;, &#39;AutoFormat.AutoParagraph&#39; =&gt; false, &#39;AutoFormat.RemoveEmpty&#39; =&gt; true, ], &#39;test&#39; =&gt; [ &#39;Attr.EnableID&#39; =&gt; &#39;true&#39;, ], &#39;youtube&#39; =&gt; [ &#34;HTML.SafeIframe&#34; =&gt; &#39;true&#39;, &#34;Filter.YouTube&#34; =&gt; &#39;true&#39;, // I suppose this rule means all iframes are allowed &#34;URI.SafeIframeRegexp&#34; =&gt; &#39;%.+%&#39;, ], </code></pre> <p>但是我得到了错误:</p> <pre><code>Element &#39;iframe&#39; is not supported (for information on implementing this, see the support forums) (View: /mnt/_work_sdb8/wwwroot/lar/HRBrazy/affiliate/resources/views/news/show.blade.php) </code></pre> <p>如何解决?</p> </question> <answer tick="false" vote="1"> <p>该配置看起来适合 HTML Purifier。这个脚本做了它应该做的事情:</p> <pre><code>// requiring HTMLPurifier.auto.php up here somewhere, no other code up here but that. $dirtyHtml = &#39; &lt;iframe width=&#34;560&#34; height=&#34;315&#34; src=&#34;https://www.youtube.com/embed/ydYDqZQpim8&#34; title=&#34;YouTube video player&#34; frameborder=&#34;0&#34; allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&#34; allowfullscreen&gt;&lt;/iframe&gt; &#39;; $knobs = [ &#39;AutoFormat.AutoParagraph&#39; =&gt; false, &#39;AutoFormat.RemoveEmpty&#39; =&gt; true, &#39;CSS.AllowedProperties&#39; =&gt; &#39;font,font-size,font-weight,font-style,font-family,text-decoration,padding-left,color,background-color,text-align&#39;, &#39;Filter.YouTube&#39; =&gt; &#39;true&#39;, &#39;HTML.Allowed&#39; =&gt; &#39;iframe[src|width|height|class|frameborder],h1,h2,h3,div,blockquote,table,tbody,tr,td,figure,b,strong,i,em,u,a[href|title],ul,ol,li,p[style],br,span[style],img[width|height|alt|src]&#39;, &#39;HTML.Doctype&#39; =&gt; &#39;HTML 4.01 Transitional&#39;, &#39;HTML.SafeIframe&#39; =&gt; &#39;true&#39;, &#39;URI.SafeIframeRegexp&#39; =&gt; &#39;%.+%&#39;, ]; $config = HTMLPurifier_Config::createDefault(); foreach ($knobs as $setting =&gt; $value) { $config-&gt;set($setting, $value); } $purifier = new HTMLPurifier($config); $cleanHtml = $purifier-&gt;purify($dirtyHtml); echo $cleanHtml . PHP_EOL; </code></pre> <p>这给了我:</p> <pre><code>&lt;iframe width=&#34;560&#34; height=&#34;315&#34; src=&#34;https://www.youtube.com/embed/ydYDqZQpim8&#34; frameborder=&#34;0&#34;&gt;&lt;/iframe&gt; </code></pre> <p>如果我注释掉 <pre><code>&#39;youtube&#39;</code></pre> 配置块中的行,则像这样:</p> <pre><code>// ... $knobs = [ &#39;AutoFormat.AutoParagraph&#39; =&gt; false, &#39;AutoFormat.RemoveEmpty&#39; =&gt; true, &#39;CSS.AllowedProperties&#39; =&gt; &#39;font,font-size,font-weight,font-style,font-family,text-decoration,padding-left,color,background-color,text-align&#39;, // &#39;Filter.YouTube&#39; =&gt; &#39;true&#39;, &#39;HTML.Allowed&#39; =&gt; &#39;iframe[src|width|height|class|frameborder],h1,h2,h3,div,blockquote,table,tbody,tr,td,figure,b,strong,i,em,u,a[href|title],ul,ol,li,p[style],br,span[style],img[width|height|alt|src]&#39;, &#39;HTML.Doctype&#39; =&gt; &#39;HTML 4.01 Transitional&#39;, // &#39;HTML.SafeIframe&#39; =&gt; &#39;true&#39;, // &#39;URI.SafeIframeRegexp&#39; =&gt; &#39;%.+%&#39;, ]; // ... </code></pre> <p> ...然后我得到你的错误:</p> <pre><code>PHP Warning: Element &#39;iframe&#39; is not supported (for information on implementing this, see the support forums) in /&lt;...&gt;/HTMLDefinition.php on line 311 PHP Stack trace: &lt;...&gt; </code></pre> <p>不幸的是,我对这里的 Laravel 集成一无所知,也不知道如何选择哪个配置处于活动状态,但是如果您确保 <pre><code>&#39;youtube&#39;</code></pre> 和 <pre><code>&#39;default&#39;</code></pre> 块实际上正在组合和使用,那应该可以解决您的问题问题。</p> </answer> <answer tick="false" vote="0"> <p>只需最后添加“youtube”作为配置,它在 laravel 10 中对我有用:<br/> <pre><code>clean($request-&gt;body, &#39;youtube&#39;);</code></pre></p> </answer> </body></html>

回答 0 投票 0

HTMLPurifier删除<a name="#someanchorname"><a>--如何阻止这种情况发生?

使用htmlpurifier 4.10,锚名标签被从文本中剥离出来。当前配置。$class_file = 'statichtmlpurifier-4.10.0-litelibraryHTMLPurifier.auto.php'; $...

回答 1 投票 0

HTMLPurifier从YouTube视频中删除允许全屏显示

出于某种原因,HTMLPurifier似乎正在从iframe中删除allowfullscreen元素,但我不确定为什么,我已经进行了一些研究,似乎无法找到一个使用了几年的答案。 ...

回答 1 投票 0

htmlpurifier在输入帖子时不起作用

我在codeigniter应用程序中使用htmlpurifier。当我直接使用html进行过滤时。例如:$ dirty_html ='T est'; $ clean_html = purify($ ...

回答 1 投票 0

是否可以在HTMLPurifier中使用redis或备用缓存?

使用HTML Purifier(ezyang / htmlpurifier)或专门用于Laravel 7(由前者提供支持)(stevebauman / purify),是否可以使用替代文件系统的缓存?该文档暗示...

回答 1 投票 0

HtmlPurifier-允许数据属性

我正在尝试为htmlPurifier允许所有范围的数据属性,但是没有办法...我有这个字符串: [[[[[]]]] < [ HTML Purifier知道HTML的结构,并将此知识用作其白名单过程的基础。如果您将标准属性添加到白名单,则该属性不允许该属性的任意内容-它 理解 该属性,并且仍会拒绝没有意义的内容。 例如,如果某个地方的属性带有数字值,HTML Purifier仍会拒绝尝试为该属性输入值'foo'的HTML。如果添加自定义属性,仅将其添加到白名单并不能教HTML Purifier如何处理这些属性:在这些属性中可以期望哪些数据?哪些数据是恶意的? 这里有大量的文档,您可以在此处告诉HTML Purifier自定义属性的结构:Customize [<a> -tag的'target'属性有一个代码示例: $config = HTMLPurifier_Config::createDefault(); $config->set('HTML.DefinitionID', 'enduser-customize.html tutorial'); $config->set('HTML.DefinitionRev', 1); $config->set('Cache.DefinitionImpl', null); // remove this later! $def = $config->getHTMLDefinition(true); $def->addAttribute('a', 'target', 'Enum#_blank,_self,_target,_top'); 这会将target添加为仅接受值"_blank","_self","_target"和"_top"的字段。这比实际的HTML定义要严格一些,但对于大多数目的来说完全足够。 这是data-time-start和data-time-end的通用方法。要进行可能的配置,请查看官方的HTML Purifier文档(如上链接)。从您的示例中我最大的猜测是,您不想要Enum#...,而是Number,就像这样... $def->addAttribute('span', 'data-time-start', 'Number'); $def->addAttribute('span', 'data-time-end', 'Number'); ...但是检查一下,看看最适合您的用例。 ((在实现此功能时,请不要忘记您还需要像当前一样在白名单中列出属性。) 对于id,应在配置中包括Attr.EnableID = true。我希望有帮助!

回答 1 投票 7

htmlpurifier nofollow仅适用于生成的链接

我正在使用HTML Purifier库进行网站的注释格式设置。但是,我注意到了一些东西。在我的设置中,我将HTML.nofollow设置为true。 'HTML.Nofollow'=>是,但是当我写...

回答 1 投票 0

使用HTMLpurifier过滤img标签的URL

我正在使用htmlPurifier过滤用户生成的html。我想使用特定规则集过滤所有图像URL,同时允许使用更多常规超链接。如何设置仅...

回答 1 投票 0

需要HTML Purifier和preg_match / $ _ GET / $ _ POST / FILTER_VALIDATE_EMAIL?

我想询问是否需要使用html净化器来避免XSS攻击,如果:已经使用了preg_match,例如:$ userid = $ _POST [“userid”]; if(!preg_match(“/ ^ [a-zA-Z0-9] {3,15} $ /”,$ userid)){...

回答 2 投票 0

HtmlPurifier和预标签内容

有谁知道我应该如何配置HtmlPurifier来忽略其中的内容 tag? Currently I have something like this: require_once('HTMLPurifier.auto.php'); $config = ...

回答 2 投票 4

在预标签内转换转义少于标志

我正在使用HTMLPurifier来转义我网站中的字符。有效地将所有<和>转换为>和&lt。应该。我还想在网站内显示代码,但在放置时......

回答 2 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.