Php iframe中的Laravel 5.1 CSRF,如何使其工作?
我的应用程序有一个插件,用户可以在包含表单的网站上实现。问题是,当提交表单时,我会得到Php iframe中的Laravel 5.1 CSRF,如何使其工作?,php,laravel,iframe,csrf,Php,Laravel,Iframe,Csrf,我的应用程序有一个插件,用户可以在包含表单的网站上实现。问题是,当提交表单时,我会得到标记不匹配异常。从我所做的所有研究中,我可以看到一种对来自拉威尔的交叉起源的保护 我知道我可以禁用它,但我不知道在那之后我将如何保护表单 你们有谁遇到过这个问题吗?最佳做法是什么 多谢各位 注意:我注意到,如果用户以前访问过原始网站,然后访问包含iframe的网站,则不会再抛出异常。如果我了解问题的话。 提交表单可能必须具有包含令牌会话的令牌输入 <form mothod = 'post' action
标记不匹配异常。从我所做的所有研究中,我可以看到一种对来自拉威尔的交叉起源的保护
我知道我可以禁用它,但我不知道在那之后我将如何保护表单
你们有谁遇到过这个问题吗?最佳做法是什么
多谢各位
注意:我注意到,如果用户以前访问过原始网站,然后访问包含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'
];
来源:您可以通过在除数组中的app/Http/Middleware/VerifyCsrfToken.php文件中添加URL来禁用特定URL的CSRF令牌检查您需要在config/session.php中更改相同站点的值
像这样
'same_site' => 'none',
'secure' => env('SESSION_SECURE_COOKIE'),
并在.env文件中设置SESSION\u SECURE\u COOKIE=true
更多信息检查此它有标记attachedI刚刚回答@Houssain Amrani我已经包含它了你确定CSRF字段已渲染吗?数据是否正确发送到服务器?你可以在FireBug或Chrome的调试工具中检查。CSRF被渲染,在Firefox和Chrome中一切正常,但在Safari中,我得到了令牌失配异常检查我的注释,这很奇怪,如果我访问最初的网站,iframe工作正常。我想这可能和Cookies有关我可能有个主意。添加iframe提交到中间件/VerifyCsrfToken.php
中的$except
数组的URL。