php htmlpurifier,php – HtmlPurifier – 允许数据属性
我试图在我的所有范围内允许使用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 – 允许数据属性相关推荐
- php htmlpurifier,htmlpurifierPHP过滤库
htmlpurifierPHP过滤库 require_once '/path/to/HTMLPurifier.auto.php'; 根据ThinkPHP的规范,对于第三方扩展,不符合ThinkPHP开 ...
- php网页解析器,浅析php插件 HTMLPurifier HTML解析器
HTMLPurifier插件的使用 下载HTMLPurifier插件 HTMLPurifier插件有用的部分是 library 使用HTMLPurifier library类库 第一种方式 requi ...
- PHP下最好用的富文本HTML过滤器:HTMLPurifier使用教程
HTMLPurifier是我目前用过最好的PHP富文本HTML过滤器了,采用了白名单机制,有效杜绝了用户提交表单中的非法HTML标签,从而可以防止XSS攻击! HTMLPurifier项目地址:htt ...
- 使用HTML Purifier防止xss攻击
下载地址:http://htmlpurifier.org/download 在编程开发时安全问题是及其重要的,对于用户提交的数据要进行过滤,XSS就是需要重视的一点,先说一下什么是XSS,简单来说就是 ...
- purifier用来过滤危险的标签xss
htmlpurifier下载地址: http://htmlpurifier.org/ purifier下载地址: https://github.com/mewebstudio/Purifier ...
- YII 框架 php
1.打开浏览器 //localhost/kennedy(随意名字)/requirements.php 查看PHP运行环境是否服合YII 2.打开浏览器 //localhost/kennedy(随意名字 ...
- 使用HTML5的自定义数据属性的jQuery选择器
本文翻译自:jQuery selectors on custom data attributes using HTML5 I would like to know what selectors are ...
- 修改与删除@property封装的数据属性
# 修改与删除@property封装的数据属性# 原始通过@property实现的功能:将类中定义的函数属性,通过装饰器@property将其封闭成数据属性,这时是不能删除和修改这个数据属性的clas ...
- 《js高级程序设计》6.1.1-6.1.3——数据属性、访问器属性
数据属性:该属性包含了一个数据值的位置,它包含了4个描述行为的特性: 1. [[Configurable]]:表示是否能通过delete删除属性从而重新定义属性,能否修改属性的特性,能否把属性修改为访 ...
最新文章
- 《统一沟通-微软-实战》-5-部署-SharePoint Server 2010
- Android动态获取图片资源
- pythonweb扫描器_Python安全工具之web目录扫描
- linux hibernate suspend 区别,实现Linux休眠(sleep/hibernate)和挂起(suspend)
- mysql 查看锁_SQL-mysql锁等待与死锁
- 数据分析与挖掘建模实战002:数据获取
- sts bug SpringJUnit4ClassRunner
- mysql表删除后恢复
- c51C语言温度监控器流程图,51单片机温度控制系统原理图+程序+流程图-课程设计_508.doc...
- 2019级软件工程应用与实践-人工智能快递柜(代码分析9)
- Android -结束当前activity并返回上一个activity
- c语言二级的作用是什么,c语言二级模拟考试
- google手机连接WIFI后总会提示“无法连接互联网“的解决方法
- 在自己电脑上建立SVN服务器
- 运放的输入共模区间及解决VICMR问题
- 全国(省,直辖市,自治区,特别行政区)映射集合
- 解决json_encode中文乱码情况
- Skywalking log4j、log4j2、logback tid注入方法
- cd .ssh返回-bash: cd: .ssh:No such file or directory怎么办
- 新版本微信如何解绑手机号?