0
我有ajax控制器來存儲從JS
通過AJAX
調用的操作。Symfony 2 - 安全Ajax控制器
在這裏,每一個動作我驗證如果請求被AJAX
製成,無其他:
if (!$request->isXmlHttpRequest()) {
return new JsonResponse(array('message' => 'You can access this only using Ajax!'), 400);
}
現在的問題是,不是每個AJAX控制器動作應該被大家稱爲,而是取決於作用登錄的用戶。
行動的請求是由AJAX
從JS
製成,但由於行動是在控制我仍然能夠通過$this->getUser()
在用戶對象得到記錄,並檢查用戶是否具有可接受ROLE
通過isGranted()
執行控制器動作。
例子:
if (!$authorizationChecker->isGranted('ROLE_ADMIN')) {
return new JsonResponse(array('message' => 'This can be performed only by admin!'), 400);
}
我應該檢查ROLES
從內部控制的每一個動作或嘗試在security.yml
配置access_control
阿賈克斯路線?
我不知道這兩種方法之間有什麼大的區別,但想知道哪一個更實用,可以讓我的ajax操作更安全。
只要你寫測試,他們兩個將同樣安全。我的意思是,效果是一樣的。 如果你想讓你的動作不那麼冗長,你可以使用yaml或者你可以使用註釋:http://symfony.com/doc/current/bundles/SensioFrameworkExtraBundle/annotations/security.html – jkrnak