最近一直在调查laravel,并试图找出他们拥有的CSRF保护.但是,我无法让它发挥作用.有什么方法可以使用CSRF过滤器验证提交的所有帖子请求吗?我已经看到laravel系统有:
App::before(function($request)
{
//
});
Run Code Online (Sandbox Code Playgroud)
如何在CSRF过滤器中使用它?一直在尝试一些不同的东西
App::before(function($request)
{
Route::filter('csrf','post');
});
Run Code Online (Sandbox Code Playgroud)
但我可能会离开这里..这将如何运作?或者甚至可以这样做?
小智 30
这是最好和最简单的解决方案:
Route::when('*', 'csrf', array('post'));
Run Code Online (Sandbox Code Playgroud)
无需分组路线或混乱构造函数.
Ble*_*ing 23
您可以使用路线组.这会将指定的选项应用于组中定义的任何路由:
Route::group(array('before' => 'csrf'), function()
{
Route::post('/', function()
{
// Has CSRF Filter
});
Route::post('user/profile', function()
{
// Has CSRF Filter
});
Route::post(....);
});
Run Code Online (Sandbox Code Playgroud)
对于某些路线,或者如果分组不是您想要的,您还可以使用模式过滤器:
//all routes beginning with admin, sent via a post http request will use the csrf filter
Route::when('admin/*', 'csrf', array('post'));
Run Code Online (Sandbox Code Playgroud)
注意:此代码将包含在routes.php文件中
ux.*_*eer 11
在我的BaseController中我有这个:
public function __construct()
{
$this->beforeFilter('csrf', array('on' => array('post', 'delete', 'put')));
$this->beforeFilter('ajax', array('on' => array('delete', 'put')));
}
Run Code Online (Sandbox Code Playgroud)
有这样的App::before过滤器是一个有趣的方法,但我不知道哪个更好?
| 归档时间: |
|
| 查看次数: |
17668 次 |
| 最近记录: |