【问题标题】:Using CSRF in Laravel在 Laravel 中使用 CSRF
【发布时间】:2015-01-01 04:58:36
【问题描述】:

这是我隐藏的 CSRF

<input type="hidden" name="_token" value="<?php echo csrf_token(); ?>">

我的csrf照常生成

当我进入控制器的路由时

这是我的旧路线

Route::post('register', 'RegisterController@registeruser');

用 csrf 来实现

Route::post('register', array('before' => 'csrf', function()
{
    return 'You gave a valid CSRF token!';
}));

根据Laravel Docs

当我将它路由到控制器时

Route::post('register', array('before' => 'csrf', RegisterController@registeruser()
{
    return 'You gave a valid CSRF token!';
}));

我收到了错误

syntax error, unexpected '{', expecting ')'

我做错了什么,我该如何解决?

【问题讨论】:

    标签: php laravel laravel-4 csrf


    【解决方案1】:

    你的路线应该是这样的:

    Route::post('register', array('before' => 'csrf', 'uses' => 'RegisterController@registeruser');
    

    然后你可以在你的控制器中处理它

    class RegisterControllerextends Controller {
    
        protected function registeruser()
        {
            return 'You gave a valid CSRF token!';
        }
    
    }
    

    【讨论】:

    • 我可以这样使用吗? Route::get('view',array('before' => 'csrf', 'uses' => 'ViewController@view'));
    • 您不会将 CSRF 用于 GET 路由。仅 POST、PUT 和 DELETE
    • 在原始 php 中我使用 http 引用验证,它是否等同于这个?if($_SERVER['HTTP_REFERER'] == '') {header("Location: logout");}
    猜你喜欢
    • 1970-01-01
    • 2022-10-14
    • 2018-12-01
    • 2021-06-29
    • 1970-01-01
    • 2017-06-17
    • 2017-11-16
    • 2018-07-20
    • 2016-03-30
    相关资源
    最近更新 更多