Laravel 5.1 iframe 中的 CSRF,如何让它工作?
Laravel 5.1 CSRF in iframe, how to make it work?
我有一个适用于我的应用程序的插件,用户可以在其包含表单的网站上实施该插件。问题是我在提交表单时得到 TokenMismatchException
。从我所做的所有研究中,我可以看到来自 Laravel.
的跨源保护
我知道我可以禁用它,但我不知道之后我将如何保护表单?
你们中有人遇到过这个问题吗?最佳做法是什么?
谢谢
注意:我注意到,如果用户之前访问过原始网站,然后转到包含 iframe 的网站,则不会再抛出异常。
如果我理解这个问题。
可能提交表单必须有一个包含令牌会话的令牌输入。
<form mothod = 'post' action = 'YourAction'>
<input type = 'hidden' name = '_token' value = '{{Session:token()}}'>
.
.
.
</form>
Laravel 不允许从其他域提交表单,但您可以设置例外。
您可以在 App/Http/Middleware/VerifyCsrfToken.php
中添加例外。
protected $except = [
'post/something'
];
来源:EasyLaravel
您可以通过在 app/Http/Middleware/VerifyCsrfToken.php 文件中添加 URL 来禁用特定 URL 的 CSRF 令牌检查除了数组
您需要更改 config/session 中的 same_site
值。php .
像这样
'same_site' => 'none',
'secure' => env('SESSION_SECURE_COOKIE'),
并在 .env 文件中设置 SESSION_SECURE_COOKIE=true
.
查看更多信息youtube video
我有一个适用于我的应用程序的插件,用户可以在其包含表单的网站上实施该插件。问题是我在提交表单时得到 TokenMismatchException
。从我所做的所有研究中,我可以看到来自 Laravel.
我知道我可以禁用它,但我不知道之后我将如何保护表单?
你们中有人遇到过这个问题吗?最佳做法是什么?
谢谢
注意:我注意到,如果用户之前访问过原始网站,然后转到包含 iframe 的网站,则不会再抛出异常。
如果我理解这个问题。 可能提交表单必须有一个包含令牌会话的令牌输入。
<form mothod = 'post' action = 'YourAction'>
<input type = 'hidden' name = '_token' value = '{{Session:token()}}'>
.
.
.
</form>
Laravel 不允许从其他域提交表单,但您可以设置例外。
您可以在 App/Http/Middleware/VerifyCsrfToken.php
中添加例外。
protected $except = [
'post/something'
];
来源:EasyLaravel
您可以通过在 app/Http/Middleware/VerifyCsrfToken.php 文件中添加 URL 来禁用特定 URL 的 CSRF 令牌检查除了数组
您需要更改 config/session 中的 same_site
值。php .
像这样
'same_site' => 'none',
'secure' => env('SESSION_SECURE_COOKIE'),
并在 .env 文件中设置 SESSION_SECURE_COOKIE=true
.
查看更多信息youtube video