蓝

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

  • 财富值3205
  • 威望值490
  • 总积分9095

个人信息

  • 首先,楼上说的 “在基类控制器里获取” 这个方案 肯定是 可行的,这里 另外提供一个 低耦合 的方案

    1、写一个行为,比如叫 app\lan\MyBehavior ,在这个 行为 中提供一个方法,比如叫 getLatestArticle,在这个方法里 读取数据库 返回 最近发布的文章

    2、配置文件中,将这个行为附加到 当前的 控制器中,这样 每一个被请求的控制器 就都有了 getLatestArticle 这个方法

    'on beforeAction' => function() {
      Yii::$app->controller->attachBehavior('MyBehavior', 'app\lan\MyBehavior');
    }
    

    3、footer 里这样调用

    <?= $this->context->getLatestArticle() ?>
    

    对所有的控制器 不需要 任何代码的改动

  • 有个简单的做法,在 配置项 controllerMap 里 配置个映射就可以了

    'controllerMap' => [
      'TestABC' => 'app\controllers\TestABCController'
    ]
    

    这样 /test-a-b-c/TestABC 两种 都可以访问了

    相关文档
    https://www.yiiframework.com/doc/guide/2.0/zh-cn/structure-applications#controllerMap

  • yum list installed | grep php
    

    能搜到 说明是 yum 安装的
    搜不到 说明不是 yum 安装的,也有可能是 其它包管理工具装的,比如 apt-get,brew 等等
    是不是编译安装的,除了 装 的那个人,别人 无从知道
    甚至 我可以到一个相同的操作系统上 copy 相关的文件过来,这个算 编译安装 么?

  • orderBy(new \yii\db\Expression('case when id in (1, 3) then 1 else 0 end'));
    
  • 回复了 的回复

    拿到数据库权限后,如何修改的 authorized_keys 文件呢?

    mysql 默认有 secure_file_priv 的限制,难道 你手动把这个限制 关掉了?
    再说 select into outfile 不能覆盖现有文件,只能导出到一个 新文件

  • 拿到数据库权限后,如何修改的 authorized_keys 文件呢?

  • 配置文件里配置一下 log 就可以了吧

    [
        'class' => 'yii\log\DbTarget',
        'levels' => ['error', 'warning', 'trace'],
        'categories' => ['yii\db\*']
    ]
    

    不过,写日志到数据库的操作 也是在 操作数据库,会不会出现 死循环,就 不得而知了

  • 可以配合 sleep 实现

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

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

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

副总裁 等级规则
9095/10000
资料完整度
30/100
用户活跃度
0/100

Ta的关注

1

Ta的粉丝

13

Ta的访客

80