【问题标题】:CSRF across multiple applications/services跨多个应用程序/服务的 CSRF
【发布时间】:2017-03-18 14:12:51
【问题描述】:

我在同一个域下有 2 个应用程序,1 个从带有 Laravel 5.2 后端和 Angular2 前端的 PHP 5.6 服务器运行,另一个在带有扁平 javascript 前端的 PHP 5.3 服务器上运行自定义框架。在每个应用程序中,我都有一个 csrf 令牌。较旧的服务器(5.3)有一个自定义 csrf 生成器,但 laravel 使用 laravel 的 VerifyCsrfToken.php 中间件。

我偶尔需要从 angular2 前端调用旧 API,但 csrf 令牌不匹配。如何在 laravel 中实现自定义 csrf 令牌生成器?

【问题讨论】:

  • 令牌在 Laravel 或其他框架中不匹配?
  • laravel csrf 匹配 angular2 csrf,但两者都需要匹配其他框架的 csrf

标签: php angularjs laravel angular csrf


【解决方案1】:

您可以创建一个OldTokenClass并将令牌传递给您的所有视图。但是,我很难根据您提供的信息推测 OldTokenClass 中应该包含什么内容。本质上,您应该能够从该类生成或获取旧应用令牌。

类似

//Route
use App\Service\OldTokenClass;

view()->composer('*', function ($view) {
    $tokenGen =  new OldTokenClass();

    return $view->with('old_crsf_token', $tokenGen->get());

});

然后在您的视图布局中,您可以执行类似的操作

    <meta name="old-csrf-token" content="{{$old_crsf_token}}">

并将其与角度一起使用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-13
    • 2011-04-03
    • 1970-01-01
    • 2019-06-13
    • 2016-05-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多