laravel过滤富文本提交的标签(防止XSS等js脚本攻击)
1.安装sdk composer require mews/purifier2.完成后,在配置文件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,
laravel过滤富文本提交的标签(防止XSS等js脚本攻击)相关推荐
- java 接收前台富文本_java 解析富文本处理 img 标签
很多项目都需要到富文本来添加内容,就好比新闻啊,旅游景点之类的,都需要使用富文本去添加数据,然而怎么我这边就发现了两个问题 1)怎样将富文本的图片的 src 获取出来? 2)后台上传的时候用的是相对路 ...
- 如何扩展Android富文本之Html标签
前言 大家都知道Android 富文本其实就是HTML标签那些东西,但Android本身对其支持有限,今天就说说如何对其进行扩展 富文本 在Android设置富文本一般如下 String txt = ...
- java 富文本编辑器的标签处理数据 从数据库中取出 并返回前台
总结: 1.使用 HtmlUtils.htmlEscape ()方法对 字符串中的标签转义 2.使用 removeHtmlTag() 得数据 具体步骤如下: 我的数据库的存储格式被转义过了,这个因人而 ...
- vue-quill-editor富文本编辑器保存标签乱码
最近使用若依系统做一个后台管理系统,在使用里面得富文本编辑器时发现前端富文本编辑器会在保存时给数据加两个p标签,而这两个p标签在传到后台得时候会出现乱码,回导致数据保存变成乱码,解决方法如下: 前端: ...
- php富文本防注入_HTML Purifier,PHP中过滤富文本防止XSS攻击
首先引用别人的原话: HTML Purifier:PHP防止xss跨站攻击利器 xss是什么? (百度到的→)XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给 ...
- html段落p限制字数,富文本编辑器带有标签文字,限制字数后多余文字截断的问题...
目前在用编辑器simditor,现在的一个需求是要给这个编辑器加一个字数限制. 能实时获取到当前编辑器内的value,例如: 123456 假如我限制五个字数的话,截断之后应为: 12345 统计字数 ...
- java富文本框去掉标签提取全部文字
String richText="<p><span style=\"color: rgb(114, 192, 64);\"><s>&l ...
- vue如何过滤html标签,去除富文本中的html标签及vue、react、微信小顺序中的过滤器...
在猎取富文本后,又只需显现部分内容,须要去除富文本标签,然后再截取个中一部分内容:然后就是过滤器,在微信小顺序中运用照样挺屡次的,在vue及react中也遇到过 1.富文本去除html标签去除html ...
- PHP防止富文本编辑器让服务器产生过多垃圾图片
PHP防止服务器富文本提交产生过多垃圾图片 1.前言 做一个项目,然后用到了,富文本编辑器,比如: 这种富文本编辑器可以完成由用户来生成,图文并茂的内容,有点像CSDN的写博客部分.然后出现了问题: ...
最新文章
- 【JavaSE01】初识Java-概念
- [转载] 七龙珠第一部——第110话 加油 孙悟空
- 通讯编码器测试软件,西门子S7-200 SMART通过modbusRTU与绝对值编码器通信
- python1080p壁纸高清图片_Python爬取高清桌面壁纸(附源码),直接运行即可
- python 列表、字典多排序问题
- 数据库要不要放在docker
- git连接通过ssh连接github
- Oracle监听注册和sqlnet,Oracle监听配置(四)--如何实现静态、动态注册
- Demo(3月28日)
- 关于vue自定义事件中,传递参数的一点理解
- php array函数 array_keys返回数组的键值
- 几种网赚项目引流的方法
- 微观经济学第七周作业(生产函数,规模报酬,投入产出)
- 计算机表格的名次怎么弄,excel表格函数名次怎么做
- HoloLens2开发常见问题汇总
- 出海必知:跨境人必须知道的一个跨境电商推广常用渠道
- SpringBoot接入支付宝沙箱返回支付二维码
- Android APP开发入门
- 阿里云 - MaxCompute研究
- java udp心跳机制_心跳包机制整理汇总
热门文章
- oracle漏洞pdf,Oracle DBA手记 4 数据安全警示录 pdf完整扫描版版
- 博应用官网揭露不为所知的iPhone手机搜索框使用教程
- adobe xd_如何在Adobe XD中创建Finance App UI设计
- 自订安装套件选单(转)
- python编程好学吗-python语言好学吗
- U-MEX and Increments
- Linux常用命令个人记录
- EasyNVR网页Chrome无插件播放摄像机视频功能二次开发之云台控制接口示例代码
- 两个鸡蛋,100层楼,找出摔碎鸡蛋的最低楼层,所用的摔鸡蛋次数最少
- 开源框架Volley的使用《一》