#security #cron #silverstripe
#Безопасность #cron #silverstripe
Вопрос:
У меня есть функция контроллера, разрешение которой установлено на ADMIN, которая должна быть выполнена из задания cron, к сожалению, вызывая его из php или php-cgi говорит, что actipn не разрешен на контроллере. Я временно удалил проверку АДМИНИСТРАТОРА, но она требует больших ресурсов, поэтому это возможный вектор DDOS
Ответ №1:
Вы можете использовать пользовательскую проверку разрешений в своем контроллере, чтобы проверить, выполняется ли вызов из командной строки:
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');
}
}