如何使用UEditor和如何过滤html代码防止攻击

如何使用UEditor和如何过滤html代码防止攻击_第1张图片

操作:

1.下载包

2.压缩并复制到/Public/目录下


如何使用UEditor和如何过滤html代码防止攻击_第2张图片

3.在需要使用的页面导入JS和CSS文件


如何使用UEditor和如何过滤html代码防止攻击_第3张图片

为textarea添加一个ID:


如何使用UEditor和如何过滤html代码防止攻击_第4张图片


如何使用UEditor和如何过滤html代码防止攻击_第5张图片

问题六、在线编辑器中的HTML内容会TP过滤转义,这样效果就失效了:不转义会被攻击


如何使用UEditor和如何过滤html代码防止攻击_第6张图片

解决办法:有选择性的过滤:只过滤掉危险的JS脚本代码、保留HTML。可以使用htmlpurifier这个开源包来做这个事儿。

实际操作:

1.下载

2.压缩出library目录中的代码到项目根目录 并改名


如何使用UEditor和如何过滤html代码防止攻击_第7张图片

封装一个公共的方法

// 有选择性的过滤XSS --》 说明:性能非常低-》尽量少用

functionremoveXSS($data)

{

require_once'./HtmlPurifier/HTMLPurifier.auto.php';

$_clean_xss_config= HTMLPurifier_Config::createDefault();

$_clean_xss_config->set('Core.Encoding','UTF-8');

// 设置保留的标签

$_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]');

$_clean_xss_config->set('CSS.AllowedProperties','font,font-size,font-weight,font-style,font-family,text-decoration,padding-left,color,background-color,text-align');

$_clean_xss_config->set('HTML.TargetBlank',TRUE);

$_clean_xss_obj=newHTMLPurifier($_clean_xss_config);

// 执行过滤

return$_clean_xss_obj->purify($data);

}


如何使用UEditor和如何过滤html代码防止攻击_第8张图片

总结:如果项目中使用了在线编辑器需要配合使用HTMLPurifer实现有选择性的过滤XSS!!

你可能感兴趣的:(如何使用UEditor和如何过滤html代码防止攻击)