• htmlpurifier 过滤危险的JS代码


       在公共函数function里面

          

    // 有选择性的过滤XSS --》 说明:性能非常低-》尽量少用
    function removeXSS($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 = new HTMLPurifier($_clean_xss_config);
    // 执行过滤
    return $_clean_xss_obj->purify($data);
    }

    在模型中调用这个方法

    protected function _before_insert(&$data,$option)
    {
    //获取当前时间添加到表单中
    $data['addtime']=date('Y-m-d H:i:s',time());

    //我们自己来过滤这个字段
    $data['goods_desc']= removeXSS($_POST['goods_desc']);
    }

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

    世上无难事,只怕有心人......
  • 相关阅读:
    第十八章 Nginx Rewrite重写
    第二十章 HTTPS实现LNMP全站访问
    第十九章 HTTPS协议介绍
    第二十一章 Nginx常用HTTPS配置
    第二十三章 Nginx常见问题思考
    ABC232
    1606E Arena
    st+dfs序求lca
    Servlet——HTTP状态 405 方法不允许
    借助SimpleDateFormat来谈谈java里的多线程不安全
  • 原文地址:https://www.cnblogs.com/gooderic/p/5679300.html
Copyright © 2020-2023  润新知