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