Laravel 5.1 iframe 中的 CSRF,如何使其工作?

les*_*dru 7 php iframe csrf laravel

我的应用程序有一个插件,用户可以在包含表单的网站中实现该插件。问题是我TokenMismatchException在提交表单时遇到的问题。从我所做的所有研究中,我可以看到 Laravel 对跨域的保护。

我知道我可以禁用它,但我不知道之后如何保护表单?

你们有人遇到过这个问题吗?最佳实践是什么?

谢谢

注意:我注意到,如果用户之前访问过原始网站,然后转到包含 iframe 的网站,则不会再抛出异常。

Moh*_*ani 9

您需要更改config/session.phpsame_site中的值。

像这样

'same_site' => 'none',
'secure' => env('SESSION_SECURE_COOKIE'),
Run Code Online (Sandbox Code Playgroud)

SESSION_SECURE_COOKIE=true并在.env 文件中设置。

更多信息请查看此YouTube 视频


Ale*_*lex 2

Laravel 不允许从其他域提交表单,但您可以设置例外。

您可以在 中添加例外App/Http/Middleware/VerifyCsrfToken.php

protected $except = [
    'post/something'
];
Run Code Online (Sandbox Code Playgroud)

来源:EasyLaravel