标签: htmlpurifier

从HTML内容中删除脚本标记

我正在使用HTML Purifier(http://htmlpurifier.org/)

我只是想删除<script>标签.我不想删除内联格式或任何其他东西.

我怎样才能做到这一点?

还有一件事,还有其他方法可以从HTML中删除脚本标记

php regex htmlpurifier

56
推荐指数
3
解决办法
10万
查看次数

符合HTML5的HTML过滤器

是否有一种简单的方法来为HTMLPurifier添加HTML5规则集?

可以将HP 配置为识别新标签:

// setup configurable HP instance
$config = HTMLPurifier_Config::createDefault();
$config->set('HTML.DefinitionID', 'html5 draft');
$config->set('HTML.DefinitionRev', 1);
$config->set('Cache.DefinitionImpl', null); // no caching
$def = $config->getHTMLDefinition(true);

// add a new tag
$form = $def->addElement(
  'article',   // name
  'Block',     // content set
  'Flow',      // allowed children
  'Common',    // attribute collection
  array(       // attributes
  )
);

// add a new attribute
$def->addAttribute('a', 'contextmenu', "ID");
Run Code Online (Sandbox Code Playgroud)

然而,这显然有点工作.由于必须注册许多新的HTML5标签和属性.即使使用现有的HTML 4标记,新的全局属性也应该是可组合的.(从文档中判断如何增加核心规则很难判断).那么,是否有更有用的配置格式/数组结构将新的更新的标记+属性+上下文配置(内联/块/空/流/ ...)提供给HTMLPurifier?

# mostly confused about how to extend existing tags:
$def->addAttribute('input', 'type', "...|...|...");

# or …
Run Code Online (Sandbox Code Playgroud)

php html5 htmlpurifier

55
推荐指数
2
解决办法
6572
查看次数

HTML Purifier的安全PHP编程不能做什么?

我正在研究PHP安全最佳实践,特别是HTML Purifier库.

我喜欢使用第三方库来帮助加强我网站的安全性,但我对一些事情感到困惑......

  1. 首先,一个普遍的问题...... HTML Purifier的做法是什么,实践安全的PHP编程不能?

  2. 如果我正在使用HTML Purifier,这是否意味着我可以跳过常见的安全措施,例如使用PHP函数来过滤输入和转义输出?

  3. 这个问题的回复评论之一似乎表明只有允许HTML标签的元素(例如WYSIWYG编辑器)才需要HTML Purifier.它是否正确?

  4. 有没有人注意到使用HTML Purifier的性能滞后?本文使性能影响值得考虑.

  5. 是否有关于将HTML Purifier与非框架PHP应用程序集成的最新教程?我发现的一切都是旧的特定于框架的.

只是为了确认我已经完成了我的作业才问这个......

  • 这个问题与我的问题基本相同,但唯一的反应似乎只列出了提问者忘记提及的另一个最佳实践

  • 这个"丰富"的问题是关于HTML Purifier和HTML5的一个很好的资源,但它假设了基础知识

  • HTML Purifier网站上的这个比较页面更多地与其他过滤器进行比较

php security htmlpurifier

20
推荐指数
1
解决办法
6524
查看次数

htmlpurifier自定义属性

如何在HtmlPurifier中允许自定义(html5 data-*)属性?

输入:

<img src="/my.jpg" data-type="5" alt="" />
Run Code Online (Sandbox Code Playgroud)

导致错误:

Attribute 'data-type' in element 'img' not supported 
(for information on implementing this, see the support forums) 
Run Code Online (Sandbox Code Playgroud)

HtmlPurifier选项设置为:

'HTML.AllowedAttributes' => array('img.src', 'a.href', 'img.data-type')
Run Code Online (Sandbox Code Playgroud)

html5 custom-attributes htmlpurifier

12
推荐指数
1
解决办法
4004
查看次数

HTMLPurifier iframe Vimeo和Youtube视频

如何使用HTMLPurifier过滤xss,还允许使用iframe Vimeo和Youtube视频?

require_once 'htmlpurifier/library/HTMLPurifier.auto.php';
$config = HTMLPurifier_Config::createDefault();
$config->set('HTML.Trusted', true);

$config->set('Filter.YouTube', true);
$config->set('HTML.DefinitionID', '1');
$config->set('HTML.SafeObject', 'true');
$config->set('Output.FlashCompat', 'true');

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

$purifier = new HTMLPurifier($config);
$temp = $purifier->purify($temp);
Run Code Online (Sandbox Code Playgroud)

php xss video iframe htmlpurifier

12
推荐指数
4
解决办法
1万
查看次数

HTMLPurifier删除target ="_ blank"

我正在使用HTMLPurifier,即使你拥有:

$config->set('HTML.Doctype', 'XHTML 1.0 Transitional');
Run Code Online (Sandbox Code Playgroud)

它会从链接中删除所有"目标"属性.

知道为什么要这样做吗?

html php htmlpurifier

12
推荐指数
1
解决办法
4168
查看次数

允许使用HTMLPurifier的data-*属性

目前我在HTMLPurifier中使用此代码来允许data-*HTML标记属性:

    $def = $config->getHTMLDefinition(true);
    $def->addAttribute('div', 'data-aaa', 'Text');
    $def->addAttribute('div', 'data-bbb', 'Text');
    // ...
Run Code Online (Sandbox Code Playgroud)

有没有一种方法可以同时允许所有data-*属性,最好是在所有HTML标签上?(在我的情况下,它们不是安全问题 - 当然,据我所知)

php htmlpurifier

12
推荐指数
2
解决办法
1969
查看次数

HTML净化器 - 要净化什么?

我正在使用HTML Purifier来保护我的应用程序免受XSS攻击.目前我正在从WYSIWYG编辑器中净化内容,因为这是唯一允许用户使用XHTML标记的地方.

我的问题是,我是否应该在登录验证系统(或注册页面的输入字段,如电子邮件,姓名,地址等)上使用HTML Purifier用户名和密码?那里有XSS攻击的机会吗?

html php xss xhtml htmlpurifier

11
推荐指数
1
解决办法
3341
查看次数

HTMLPurifier:如何在不重新定义整个白名单的情况下允许单个属性

我正在使用HTMLPurifier来清理HTML字符串(它是关于安全性的).

调用HTMLPurifier时会删除某些属性(如widthheight).我不认为这是一个安全问题.

如何在不重新定义白名单的情况下添加此属性?

我搜索了Stackoverflow和HTMLPurifier文档,但唯一的解决方案似乎是:

$config->set('HTML.Allowed', 'p,b,a[href],i');
Run Code Online (Sandbox Code Playgroud)

但这不是一个解决方案,因为我不想重新定义白名单(我相信默认的HTMLPurifier配置,我只想添加一个例外).

html php security sanitization htmlpurifier

9
推荐指数
2
解决办法
2657
查看次数

如何配置HTML Purifier以允许图像src的数据URI?

如何允许base64数据用于图像标记的src属性?我看到这样的代码:

$config->set('URI.AllowedSchemes', array('http' => true, 'https' => true, 'mailto' => true, 'ftp' => true, 'nntp' => true, 'news' => true, 'data' => true));
Run Code Online (Sandbox Code Playgroud)

在这种情况下,是否data => true允许base64?如果是这样,我怎么能只允许base64数据用于img标签的src属性?(我不想在其他情况下允许数据URI.)

我想过做的事情:

$ def-> addAttribute ('a', 'target', 'Enum # _blank, _self, _target, _top');     
Run Code Online (Sandbox Code Playgroud)

但在我的情况下像这样:

$ def-> addAtribute ('img', 'src', 'Enum # data, http, https, ...);
Run Code Online (Sandbox Code Playgroud)

这可能吗?

php htmlpurifier rich-text-editor

8
推荐指数
1
解决办法
2112
查看次数