Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php iframe中的Laravel 5.1 CSRF,如何使其工作?_Php_Laravel_Iframe_Csrf - Fatal编程技术网

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。