Silverstripe Cron工作管理员行动

时间:2014-06-22 17:13:12

标签: security cron silverstripe

我有一个控制器功能,其权限设置为ADMIN,需要从cron作业执行,不幸的是从php或php-cgi调用它表示控制器上不允许使用actipn。我暂时删除了ADMIN检查,但它是资源密集型的,所以它是一个可能的DDOS向量

1 个答案:

答案 0 :(得分:2)

您可以在控制器中使用自定义权限检查来检查是否通过CLI进行呼叫:

class FooController extends Controller {
    private static $allowed_actions = array(
        'mySecureAction' => '->MySecurityCheck'
    );

    public function mySecureAction() {
        // do something here
    }

    /**
     * if this method returns true, the action will be executed
     * for more information, view the docs at: http://doc.silverstripe.org/framework/en/topics/controller#access-control
     */
    public function MySecurityCheck() {
        return Director::is_cli() || Permission::check('ADMIN');
    }
}