hanse

hanse

这家伙有点懒,还没写个性签名!

  • 财富值65
  • 威望值0
  • 总积分105

个人信息

  • 2021-07-26 已签到
    连续签到1天,获得了5个金钱
  • 发表了说说
    yii2 还有哪些漏洞呢
  • 用字符串方式不行么? 或者 addSelect

  • 收藏了教程
    Yii2.0 RESTful API 之速率限制
  • 都yii2了还用 写

    $str=stripslashes($str);
    $str=addslashes($str);
    
    

    这些玩意儿???

  • 赞了回复

    提醒大家不要被 此文 误导
    都用了 yii 了,这些基本的攻击防护,框架 肯定考虑到了,只要 规范的写代码,yii下 不会有这些漏洞的

    另外:对于这些攻击的防护,不应该用 过滤 的方法,因为 这些基本的标点符号,还有 select update 这些很常用的单词 都是 正常交流 所必不可少的,粗暴的过滤掉 会改变 内容的含义

    假设 你做的是一个讨论 正则表达式,html 及 sql 的论坛,按他这样过滤,也就 不用讨论啥了

  • 回复了 的回复

    我解释下吧,不然可能会让其他人误会
    在contorller中写上传增改数据内容都是这样写

    <?php
    public function actionName(){
       $model = new Tablename();
       if($model->load(Yii::$app->request->post()) && $model->validate()){
           .......
           //上传图片
           $model->pic= UploadedFile::getInstance($model, 'pic');
            $t = Yii::$app->user->identity->id."_".str_replace(".",'',uniqid('',true)).mt_rand(1000,9999);
            $xlsaddr = 'uploads/'. $t . '.' . $model->pic->extension;
            //将项目移动到$xlsaddr路径位置
            $model->pic->saveAs($xlsaddr);
            $model->save()
       }
       return $this->render("viewname",['model'=>$model])
    }
    ?>
    modle中的rule为下
    <?php
     public function rules()
        {
            return [
                [['pic', ], 'file','extensions' => 'jpg,png,jpeg,bmp,JPG,PNG,JPEG,BMP'],
            ];
        }
    ?>
    

    以上代码存在上传漏洞,即$model->validate(),这个验证对上传文件的验证为前端js验证,后台没有验证pic的文件上传。测试方法,为在浏览器设置禁用js(不会设置请百度),然后按照规则填写表单,在上传图片时,上传个php文件,如果上传成功,恭喜你,你的网站被别人搞下来了

    这种遇到上传文件的,肯定不能完全靠model呀,要单独验证上传文件呀

  • 收藏了扩展
    阿里云短信验证码发送类
助理 等级规则
105/200
资料完整度
10/100
用户活跃度
0/100

Ta的关注

4

Ta的粉丝

0

Ta的访客

1