htmlpurifier-富⽂本编辑器过滤XSS
html ul标签本帖语⾔环境:php;开发框架:TP3.2;
将下载好的压缩包解压,修改名称为htmlpurifier,放在如下⽬录:
2、定义公共函数clearXSS(),路径:Application/Common/Common/function.php(注意function.php不能写成functions.php)
/* 过滤xss函数 */
function clearXSS($string){
require_once './htmlpurifier/HTMLPurifier.auto.php';
// ⽣成配置对象
$_clean_xss_config = HTMLPurifier_Config::createDefault();
// 以下就是配置:
$_clean_xss_config->set('Core.Encoding', 'UTF-8');
// 设置允许使⽤的HTML标签
$_clean_xss_config->set('HTML.Allowed','div,b,strong,i,em,a[href|title],ul,ol,li,p[style],br,span[style],img[width|height|alt|src]');
// 设置允许出现的CSS样式属性
$_clean_xss_config->set('CSS.AllowedProperties', 'font,font-size,font-weight,font-style,font-family,text-decoration,padding-left,color,background-color,text-align');
// 设置a标签上是否允许使⽤target="_blank"
$_clean_xss_config->set('HTML.TargetBlank', TRUE);
// 使⽤配置⽣成过滤⽤的对象
$_clean_xss_obj = new HTMLPurifier($_clean_xss_config);
// 过滤字符串
return$_clean_xss_obj->purify($string);
}
3、POST提交时,除富⽂本编辑器(如商品描述)外的post数据(如商品名称、价格等)⽤TP⾃带的⼤I函数过滤,富⽂本内容⽤clearXSS()函数过滤;
注意:富⽂本与⾮富⽂本内容最好分开过滤,若是统⼀使⽤clearXSS()过滤,⾮富⽂本内容提交时可以提交clearXSS()允许使⽤的html标签,影响页⾯显⽰效果。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论