2

我目前正在尝试在此处实施此解决方案。该解决方案似乎非常简单且可行,因为我是两个主机的所有者。在 mysite1.com 上,我添加了以下img标签。

<img src="//mysite1.com.com/cookie_set/" style="display:none;">

在我的 site2.com (django) 上,我有这样的视图:

def cookie_set(request):
    response = HttpResponse()
    response.set_cookie('my_cookie', value='awesome')
    return response

当我实时发布此代码时。我收到以下错误:

Cross-Origin Read Blocking (CORB) blocked cross-origin response https://www.mysite2.com/cookie_set/ with MIME type text/html. See https://www.chromestatus.com/feature/121212121221 for more details.

我想如果我只是"Access-Control-Allow-Origin"在我的观点中添加这可能会解决问题,但根据这里的文档:https ://www.chromium.org/Home/chromium-security/corb-for-developers ,还有一个考虑因素:

例如,它将阻止从 a 或标签请求的跨域 text/html 响应,而将其替换为空响应。

我的假设正确吗?添加正确的标题后,我是否应该将内容类型更改为其他内容text/html

最终,我的最终目标是我想为我可以控制的不同域设置一个 cookie(最好没有重定向)。

4

2 回答 2

1

最佳解决方案:为此使用不同的标签。(即 iframe)。

CORB 背后的要点是防止某些标签被用于 XSSI 数据注入,因此 img 标签请求不应返回 text/html、application/json 或 xml 内容类型。

因此,除非对 img 标记的调用确实是为了捕获请求本身(例如,用于引荐来源跟踪),否则无论如何您都可以通过在 iframe 中执行来获得更多功能(例如 SSO 重定向工作流)。

另请参阅:使用 1x1 <img> 标签设置第三方 cookie - Javascript 不会删除 cookie

于 2018-08-26T22:29:36.057 回答
0

Content-Type我通过更新S3 中属性下的元数据来修复图像文件的问题 -image/jpeg用于 JPEG 文件和image/pngPNG 文件。

我的应用程序通过multer-s3上传图像文件,它似乎适用Content-Type: 'application/x-www-form-urlencoded'。它有一个带有内容类型自动检测功能的contentType 选项- 这应该可以防止不正确的标题并修复 CORB 问题。

似乎最新的 Chrome 76 版本更新包括侦听远程文件 URL 标头,特别是Content-Type. 对于其他浏览器(例如 Firefox、Safari 和应用内浏览器(例如 Instagram))来说,CORB 不是问题。

于 2019-08-14T16:01:24.337 回答