Google chrome 为什么iframe请求不发送cookie?
一个同级部门创建了一个HTML文件,它实际上是少数iFrame的脚手架。iFrame各自调用一个报告,该报告托管在web服务器上,参数略有不同。被调用的报告将向未经身份验证的用户显示登录表单,或向已通过身份验证的用户显示报告内容 scaffold.html:Google chrome 为什么iframe请求不发送cookie?,google-chrome,security,iframe,cross-domain,content-security-policy,Google Chrome,Security,Iframe,Cross Domain,Content Security Policy,一个同级部门创建了一个HTML文件,它实际上是少数iFrame的脚手架。iFrame各自调用一个报告,该报告托管在web服务器上,参数略有不同。被调用的报告将向未经身份验证的用户显示登录表单,或向已通过身份验证的用户显示报告内容 scaffold.html: <html> <head> <title>I just show the output from a bunch of report calls</title> <
<html>
<head>
<title>I just show the output from a bunch of report calls</title>
</head>
<body>
<iframe src="https://somesite.com/useful_report.html?parameter1=a¶meter2=1" id="iframe1"></iframe>
<iframe src="https://somesite.com/useful_report.html?parameter1=b¶meter2=2" id="iframe2"></iframe>
<iframe src="https://somesite.com/useful_report.html?parameter1=c¶meter2=3" id="iframe3"></iframe>
<iframe src="https://somesite.com/useful_report.html?parameter1=d¶meter2=4" id="iframe4"></iframe>
</body>
</html>
我只是显示了一系列报告调用的输出
兄弟组织向我们解释说,如果用户登录,上面的设置非常有效——直到几天前,每个iFrame都会显示有用的_report.html内容
当我
——-现在它知道我知道它知道了。如果您希望使用本机ajax或jquery ajax,请去掉async:false。这对我有用
为了在旧浏览器上进一步兼容,我建议使用。EasyXDM方法是使用iframe攻击,要求您在进行ajax调用的主机上放置一个html文件。这将是强制异步的,是的。但是这个easyXDM的好处是,您不必担心cors头。这是因为SameSitecookie策略,这意味着除非用户能够看到排除iFrame的URL,否则不会发送cookie
如果您拥有somesite.com,您可以通过将SameSite policy设置为None来选择退出此策略,并通过Doy来处理CSRF攻击的风险。somesite.com是否在其cookie中设置
SameSite
@cody我正在查看cookie,但我没有看到该名称(或类似名称)的任何属性。SameSite
属性是我可以在开发人员工具中看到的吗?是的,您可以在开发人员工具的cookie中看到它作为名称/值对,比如会话id或其他任何东西。。把它从列表中划掉我猜你能不能快速启动一个本地http服务器,通过它为文件提供iFrame,然后看看它是否有区别?@cody是的,它确实有区别;当托管在somesite.com上时,scaffold.html iframes将加载报告内容(请求标题包括cookie)。感谢您的提示,但这并不能回答问题。@JeromyFrench,您已更改了问题的内容,因此如果我的答案回答了您的问题,则会更改内容。False。“我的问题是为什么iframe请求不发送cookie?是什么Chrome和/或服务器设置/策略/指令阻止了它?”这是问题的原始草稿。