【发布时间】:2020-10-19 11:43:26
【问题描述】:
我们的应用程序运行良好,但最近 Safari 中的更改导致我们的应用程序崩溃。
Safari 13.1 开始使用 iframe 阻止 Shopify 中嵌入的应用程序。
它抛出的错误是:
refused to load https://xxdddddd.com/admin/auth/login because it does not appear in the frame-ancestor directive of content security policy.
我们尝试了各种内容安全策略,chrome 和 Firefox 运行良好,但 safari 总是中断,
我们完全删除了该标题。
我们甚至添加了:
header("Content-Security-Policy: frame-ancestors * 'unsafe-inline' 'unsafe-eval' img-src * data:");
header("Sec-Fetch-Dest: iframe");
header("Sec-Fetch-Mode: navigate");
header("Sec-Fetch-Site: cross-site");
我们尝试了各种组合,但每次在 Safari 中都失败了。我发现其他几个应用程序在 Shopify 和 Safari 13.1 的嵌入式模式下工作得很好,所以这绝对意味着它是可能的。
我注意到的一件事是 URL 需要在授权后更改,并且在我们的演员表中它不会随着 Safari 阻塞而更改,但在其他应用程序中它会更改浏览器中的 URL。但是我发现他们的代码使用 view-source 并没有什么不同。我也尝试复制所有标题。他们在给予,但没有任何效果,
【问题讨论】:
标签: safari shopify content-security-policy