技术标签: laravel php xss javascript
1.安装sdk composer require mews/purifier 2.完成后,在配置文件config/app.php的providers中注册HTMLPurifier服务提供者:
'providers' => [
// ...
Mews\Purifier\PurifierServiceProvider::class,
]
然后在aliases中注册Purifier门面:
'aliases' => [
// ...
'Purifier' => Mews\Purifier\Facades\Purifier::class,
]
3.要使用自定义的配置,发布配置文件到config目录:
php artisan vendor:publish
这样会在config目录下生成一个purifier.php文件:
return [
'encoding' => 'utf-8', //编码
'finalize' => true, //固定
'cachePath' => '/cache/purifier', //缓存路径
'cacheFileMode' => 0755,
'settings' => [
'default' => [ //默认配置
'HTML.Trusted' => true, //信任html元素,如form
'AutoFormat.RemoveEmpty' => true, //移除空
],
'help' => [ //自定义配置
'HTML.AllowedElements' => 'p,span,img,a,strong,em,hr,br', //在受安全支持元素的范围下定义信任元素
'CSS.AllowedProperties' => 'background,background-attachment,background-clip,background-color,background-image,background-origin,background-position,background-repeat,background-size,border,border-box,border-bottom,border-bottom-color,border-bottom-left-radius,border-bottom-right-radius,border-bottom-style,border-bottom-width,border-collapse,border-color,border-image,border-image-outset,border-image-repeat,border-image-slice,border-image-source,border-image-width,border-left,border-left-color,border-left-style,border-left-width,border-radius,border-right,border-right-color,border-right-style,border-right-width,border-spacing,border-style,border-top,border-top-color,border-top-left-radius,border-top-right-radius,border-top-style,border-top-width,border-width,box-decoration-break,box-shadow,box-sizing,box-snap,box-suppress,break-after,break-before,break-inside,caption-side,clear,color,color-interpolation-filters,display,display-inside,display-list,display-outside,font,font-family,font-feature-settings,font-kerning,font-language-override,font-size,font-size-adjust,font-stretch,font-style,font-synthesis,font-variant,font-weight,height,letter-spacing,lighting-color,list-style,list-style-image,list-style-position,list-style-type,margin,margin-bottom,margin-left,margin-right,margin-top,max-height,max-lines,max-width,min-height,min-width,padding,padding-bottom,padding-left,padding-right,padding-top,text-align,text-align-last,text-decoration,text-decoration-color,text-decoration-line,text-decoration-skip,text-decoration-style,text-emphasis,text-height,text-indent,text-justify,text-orientation,text-overflow,text-shadow,text-space-collapse,text-transform,text-underline-position,text-wrap,width,word-break,word-spacing,word-wrap,z-index,right,left,top,bottom,cursor,line-break,size',
'AutoFormat.RemoveEmpty' => true,
],
],
'custom_definition' => [//自定义不受支持的元素和属性
'id' => 'definition_cache_id', //缓存ID、固定
'rev' => 1,//自增值,固定
'debug' => false,//false不打开调试,即不缓存
'elements' => [//自定义元素
['section', 'Block', 'Flow', 'Common'],
['nav', 'Block', 'Flow', 'Common'],
['article', 'Block', 'Flow', 'Common'],
['aside', 'Block', 'Flow', 'Common'],
['header', 'Block', 'Flow', 'Common'],
['footer', 'Block', 'Flow', 'Common'],
['address', 'Block', 'Flow', 'Common'],
],
'attributes' => [//自定义属性
['table', 'height', 'Text'],
['td', 'border', 'Text'],
['th', 'border', 'Text'],
['tr', 'width', 'Text'],
['tr', 'height', 'Text'],
['tr', 'border', 'Text'],
],
],
];
三、Purifier的使用
clean($param['title']);
Purifier::clean($param['title']);
clean可以传入参数和配置,你可以在应用中进行动态配置,具体查看config/purifier.php
文件:
clean('测试内容', array('Attr.EnableID' => true));
Purifier::clean('测试内容', array('Attr.EnableID' => true));
同时需要预防XSS的内容不光是只能是字符串格式的,比如你想让标题和文章内容都执行clean, 你并不需要执行两次操作,只需要传入一个数组格式即可:
Purifier::clean(['content'=>$param['content'], 'title'=>$param['title']]));
常见问题
在你初次使用Purifier
回默认生成一个<p></p>
标签,非常方便使用,需要才config/purifier.php
中修改参数:
'AutoFormat.AutoParagraph' => false,
我们在说DeviceIoControl函数时其第二个参数dwIoControlCode就是由CTL_CODE宏定义的,下边我们可以了解一下CTL_CODE的内容。 CTL_CODE:用于创建一个唯一的32位系统I/O控制代码,这个控制代码包括4部分组成:DeviceType(设备类型,高16位(16-31位)),Access(访问限制,14-15位),Function
使用STM32CubeMX出现系统时钟错误。使用STM32CubeMX设置时钟为最大频率时,程序卡死在等待HSE时钟时,可以将flash存储延时即if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_7) != HAL_OK){Error_Handler();}中的FLASH_LATENCY_7设置成最大可以解决。..._stm32cubemx 时钟配置不对
本项目选取经典的Transformer模型,并在中英文数据集IWSLT 2015上训练,验证,评估。_paddlenlp的transformer api
There was an unexpected error (type=Internal Server Error, status=500).status 404 reading HelloService#hello(); content: {"timestamp":"2018-08-22T09:28:56.585+0000","status":404,"error":"Not Found",..._feign.feignexception$notfound: no message available
对于我们程序员来说,不管你是大神,还是小鱼小虾,进入公司之后,都用过源码管理工具,不然你就不是一个合格的程序员,现在各个公司用于源码管理工具通常有下面两种:git:使用git的公司应该是最多的。svn:现在使用svn的公司比重也挺大的,但是svn有局限性。当然,他们两者的区别,在这里就不做解释了,一般选择用什么源码管理工具,一般会是整个项目的负责人来选择。在iOS开发中,最好用的s_cornerstone如何pull
点云数据存储方式终于有点眉目了。点云数据率是每秒十万点,每秒有20帧frame rate,每一帧包含50个左右数据包point packet,这50个数据包组合成一个临时数据包列表point packet list temp,所有的临时数据包列表组成完整的数据包列表point packet list,写入本地文件。算法层上,数据存储的最小单元是数据包point packet,每个数据包大小为1319字节byte,包含100个点的信息,这些信息包含100个点公用的头文件信息,和每个点单独的data信息,包_livox_sdk start discovering device.
有些朋友(无中生友)有时刚移植好RTT工程之后,用IAR烧录调试时出现RT里的shell没打印出来,进入调试时发现程序卡死在rt_hw_board_init函数里的SystemClock_Config时钟初始化里,跟踪进去居然是LSI初始化不通过,然后就自我怀疑,明明是官方库为啥在里面能卡死。最后找到问题的根源就是自己没配置好IAR的烧录配置。这时驱动写成simulator,其实看到这里有些伙伴已经清楚问题在哪里,如果自己的调试器是STLink就选择ST-LINK,如果是SWD就选择J-Link/._一直在systemclock_config程序死掉
一:原理介绍先看下当前系统已设置的开机自启动程序有哪些:[root@localhost init.d]# chkconfig --listNote: This output shows SysV services only and does not include native systemd services. SysV configuration da
文章目录前言一、Selenium和Sikulix是什么?二、Selenium1.环境准备2.浏览器相关操作3.定位元素4.执行JS脚本5.鼠标键盘操作6.操作控件复选框下拉列表单选按钮悬浮多级菜单点击下拉菜单7.处理弹窗跳转页面处理三、Sikulix1.环境准备2.方法定位方法:鼠标操作键盘操作前言最近要做一个自动化数据填充的项目,领导说要用Selenium和Sikulix给的要求是要用jar包,通过Java编写但是翻遍论坛、官网,都是用Python或者其可视化界面的说明,而且这都少之又少于是想
关于这个问题由于php.ini配置文件中错误显示关闭导致.将下值由Off 变更为 Ondisplay_errors = Ondisplay_startup_errors = On_目前无法处理此请求
1) 最大似然估计 MLE给定一堆数据,假如我们知道它是从某一种分布中随机取出来的,可是我们并不知道这个分布具体的参,即“模型已定,参数未知”。例如,我们知道这个分布是正态分布,但是不知道均值和方差;或者是二项分布,但是不知道均值。 最大似然估计(MLE,Maximum Likelihood Estimation)就可以用来估计模型的参数。MLE的目标是找出一组参数,使得模型产生出观测数据_最大似然估计和t检测
前言移动测试的同学在日常工作中需要频繁用到抓包、mock 数据、限速等测试手段,而 Fiddler 作为一款强大的辅助工具,深受测试同学的青睐。虽然它有很强大的功能,可是使用的时候也会遇到一些问题,今天想给大家分享一些我在实际业务中遇到的问题和解决办法。问题一:https 请求显示 “Tunnelto 443” 和 IPhone 手机的坑高高兴兴设好了代理,开始抓包,抓到的全是灰色的 “Tunne..._fiddler的到数据包很慢