tp5商城

记录几个要点:

  • 用户使用firbug伪造表单字段,比如伪造表单id字段,如何防止,tp5中好像没有。
  • xss攻击:使用htmlspecialchars() 会把img、p、等等合法标签过滤掉,想要有选择性过滤标签,使用htmlpurifier软件包,搜索htmlpurifier下载解压,把library放到项目目录中。如果是框架,那么把相关代码放在公共文件中生成一个函数,方便随时调用。
    /**
     * htmlpurifier 过滤js脚本 // 有选择性的过滤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);
    }
  • 商品生成缩略图:商品列表页需要把,商品详情页需要把,放大镜需要把,等等。所以在添加商品图片时,数据表中要有几个字段存放不同尺寸的图片。
  • 项目中图片的优化:1. 图片相关配置写在配置文件中;2. 图片路径不要写死,写在配置文件中; 3. 上传图片和图片处理的代码封装成一个函数。
    //图片配置
        'image'                  => [
            'maxSize'  => 1024*1024,
            'exts'     => array('jpg', 'jpeg', 'png', 'gif'),
            'rootPath' => '../public/uploads/',    //上传图片保存的路径,PHP使用的路径,它是硬盘上的路径,他的根目录是D:
            'viewPath' => '/public/uploads',       //显示图片时的路径,浏览器使用的路径,根目录是网站的根目录
        ],
    
    //在配置文件中写上这段代码,类似这种

猜你喜欢

转载自www.cnblogs.com/bneglect/p/11106234.html
tp5