我有一个www.example.com从 加载 iframe 的网站www.another.com。正在加载的页面包含 HTML 和 JS,它们会触发对 self ( ) 的 AJAX 调用www.another.com。这两个站点都支持 HTTPS。
iframe 加载得很好,脚本正在执行,但是,当我单击“提交”(这是 iframe 的一部分)时,www.another.com由于 CSRF 令牌无效,我的请求被拒绝。iframe 中的表单确实包含一个token字段,该字段具有一个值(一些哈希值)。
当我直接访问时,ajax 调用工作正常www.another.com。
据我所知,到目前为止,当 ajax 调用到达服务器时,它没有启动会话,因此它无法找到匹配的令牌。
我使用Symfony 4.4withNelmioCorsBundle来确保正确的 CORS。配置如下所示:
nelmio_cors:
defaults:
allow_credentials: false
origin_regex: false
allow_origin: ['https://www.example.com','https://www.another.com']
allow_methods: ['GET', 'OPTIONS', 'POST']
allow_headers: ['Origin','Referer']
expose_headers: []
max_age: 3600
失败的 ajax 请求有以下标头:
有什么办法可以解决这个问题吗?
九州编程