我试图在我的所有范围内允许使用htmlPurifier的一些数据属性但是没办法…

我有这个字符串:

My

Name

Is

Zooboo

我的htmlpurifier配置:

$this->HTMLpurifierConfigInverseTransform = \HTMLPurifier_Config::createDefault();

$this->HTMLpurifierConfigInverseTransform->set('HTML.Allowed', 'span,u,strong,em');

$this->HTMLpurifierConfigInverseTransform->set('HTML.ForbiddenElements', 'word,p');

$this->HTMLpurifierConfigInverseTransform->set('CSS.AllowedProperties', 'font-weight, font-style, text-decoration');

$this->HTMLpurifierConfigInverseTransform->set('AutoFormat.RemoveEmpty', true);

我这样净化我的$value:

$purifier = new \HTMLPurifier($this->HTMLpurifierConfigInverseTransform);

var_dump($purifier->purify($value));die;

得到这个:

My NameIs Zoobo

但是如何在我的跨度中保存我的数据属性id,data-time-start,data-time-end?

我需要这个:

My NameIs Zoobo

我试着用这个配置测试:

$this->HTMLpurifierConfigInverseTransform->set('HTML.Allowed', 'span[data-time-start],u,strong,em');

但错误信息:

User Warning: Attribute ‘data-time-start’ in element ‘span’ not

supported (for information on implementing this, see the support

forums)

谢谢你的帮助 !!

编辑1

我尝试在这个代码行的firdt时间允许ID:

$this->HTMLpurifierConfigInverseTransform->set('Attr.EnableID', true);

它对我不起作用……

编辑2

对于data- *属性,我添加了这一行但是没有发生任何事情……

$def = $this->HTMLpurifierConfigInverseTransform->getHTMLDefinition(true);

$def->addAttribute('sub', 'data-time-start', 'CDATA');

$def->addAttribute('sub', 'data-time-end', 'CDATA');

解决方法:

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定义要严格得多,但对于大多数用途来说完全足够了.

这是数据时间开始和数据时间结束所需的一般方法.有关可能的配置,请查看官方HTML Purifier文档(如上所述).从你的例子中我最好的猜测是你不想要Enum#…但是数字,就像这样……

$def->addAttribute('span', 'data-time-start', 'Number');

$def->addAttribute('span', 'data-time-end', 'Number');

…但请检查一下,看看哪种用例最适合您的用例. (当您实现此功能时,请不要忘记您还需要在当前正在执行的白名单中列出属性.)

我希望有所帮助!

标签:htmlpurifier,php,filter

来源: https://codeday.me/bug/20191008/1870340.html

php htmlpurifier,php – HtmlPurifier – 允许数据属性相关推荐

  1. php htmlpurifier,htmlpurifierPHP过滤库

    htmlpurifierPHP过滤库 require_once '/path/to/HTMLPurifier.auto.php'; 根据ThinkPHP的规范,对于第三方扩展,不符合ThinkPHP开 ...

  2. php网页解析器,浅析php插件 HTMLPurifier HTML解析器

    HTMLPurifier插件的使用 下载HTMLPurifier插件 HTMLPurifier插件有用的部分是 library 使用HTMLPurifier library类库 第一种方式 requi ...

  3. PHP下最好用的富文本HTML过滤器:HTMLPurifier使用教程

    HTMLPurifier是我目前用过最好的PHP富文本HTML过滤器了,采用了白名单机制,有效杜绝了用户提交表单中的非法HTML标签,从而可以防止XSS攻击! HTMLPurifier项目地址:htt ...

  4. 使用HTML Purifier防止xss攻击

    下载地址:http://htmlpurifier.org/download 在编程开发时安全问题是及其重要的,对于用户提交的数据要进行过滤,XSS就是需要重视的一点,先说一下什么是XSS,简单来说就是 ...

  5. purifier用来过滤危险的标签xss

    htmlpurifier下载地址:   http://htmlpurifier.org/ purifier下载地址:   https://github.com/mewebstudio/Purifier ...

  6. YII 框架 php

    1.打开浏览器 //localhost/kennedy(随意名字)/requirements.php 查看PHP运行环境是否服合YII 2.打开浏览器 //localhost/kennedy(随意名字 ...

  7. 使用HTML5的自定义数据属性的jQuery选择器

    本文翻译自:jQuery selectors on custom data attributes using HTML5 I would like to know what selectors are ...

  8. 修改与删除@property封装的数据属性

    # 修改与删除@property封装的数据属性# 原始通过@property实现的功能:将类中定义的函数属性,通过装饰器@property将其封闭成数据属性,这时是不能删除和修改这个数据属性的clas ...

  9. 《js高级程序设计》6.1.1-6.1.3——数据属性、访问器属性

    数据属性:该属性包含了一个数据值的位置,它包含了4个描述行为的特性: 1. [[Configurable]]:表示是否能通过delete删除属性从而重新定义属性,能否修改属性的特性,能否把属性修改为访 ...

最新文章

  1. 《统一沟通-微软-实战》-5-部署-SharePoint Server 2010
  2. Android动态获取图片资源
  3. pythonweb扫描器_Python安全工具之web目录扫描
  4. linux hibernate suspend 区别,实现Linux休眠(sleep/hibernate)和挂起(suspend)
  5. mysql 查看锁_SQL-mysql锁等待与死锁
  6. 数据分析与挖掘建模实战002:数据获取
  7. sts bug SpringJUnit4ClassRunner
  8. mysql表删除后恢复
  9. c51C语言温度监控器流程图,51单片机温度控制系统原理图+程序+流程图-课程设计_508.doc...
  10. 2019级软件工程应用与实践-人工智能快递柜(代码分析9)
  11. Android -结束当前activity并返回上一个activity
  12. c语言二级的作用是什么,c语言二级模拟考试
  13. google手机连接WIFI后总会提示“无法连接互联网“的解决方法
  14. 在自己电脑上建立SVN服务器
  15. 运放的输入共模区间及解决VICMR问题
  16. 全国(省,直辖市,自治区,特别行政区)映射集合
  17. 解决json_encode中文乱码情况
  18. Skywalking log4j、log4j2、logback tid注入方法
  19. cd .ssh返回-bash: cd: .ssh:No such file or directory怎么办
  20. 新版本微信如何解绑手机号?

热门文章

  1. 【年终总结系列 2021】不变的心态应对变化的环境
  2. 学完大数据基础,可以按照我写的顺序学下去
  3. 互联网巨头们的地摊争夺战
  4. Cisdem PDF Converter OCR for Mac(PDF文字识别转换工具)
  5. 如何修改Linux字体大小,如何更改字体并调整字体大小?
  6. 什么是无监督学习?概念、使用场景及常用算法详解
  7. 游戏对战匹配逻辑小结
  8. 大学这么多比赛,我该参加哪个?
  9. 【算法导论】 内部排序算法总结
  10. 如何利用文字推动业绩 ——营销人员的软文营销