Safari 13.1拒绝加载Shopify嵌入式应用程序
我们的应用程序运行正常,但Safari最近的更改导致我们的应用程序崩溃 Safari 13.1开始使用iframe阻止Shopify中嵌入的应用程序 它抛出的错误是:Safari 13.1拒绝加载Shopify嵌入式应用程序,safari,shopify,content-security-policy,Safari,Shopify,Content Security Policy,我们的应用程序运行正常,但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. 我们尝试了各种内容安全策略,ch
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");
我们尝试了各种组合,但每次都失败了。我发现其他几个应用程序在Shopify和Safari 13.1的嵌入式模式下工作得很好,所以这肯定意味着这是可能的
我注意到的一点是,URL需要在授权后更改,在我们的cast中,它不会随着Safari块而更改,但在其他应用程序中,它会更改浏览器中的URL。然而,我发现他们使用view source的代码没有什么不同。我也尝试复制所有的头文件。他们给出了,但没有任何效果,您的CSP
框架祖先*“不安全内联”不安全评估img src*数据:
完全错误:
- 指令块应以逗号分隔
- frame PRECENTS指令不支持“不安全内联”和“不安全评估”标记
frame祖先*;img src*数据:代码>
但矛盾的是,这个错误的CSP确实允许来自任何来源的帧祖先。删除所有不受支持的源后,有效的CSP是帧祖先*数据:
在错误中:
refused to load https://xxdddddd.com/admin/auth/login because it does not appear in the frame-ancestor directive of content security policy.
混淆了两件事:
帧祖先指令中的短语包含错误的指令名称(s在指令名称末尾省略)。这是真正的Safari浏览器错误吗
/admin/auth/
部分-这真的是可公开访问的URL吗?或者此错误是否出现在管理员脚本中,该脚本可能有其他CSP规则
你说在Chrome和Firefox中都工作得很好,但是框架祖先*“不安全内联”“不安全评估”img src*数据:
规则不允许从任何来源加载图像。
因此,您可能正在编辑一个CSP标题,但应用程序确实有另一个标题。如果您熟悉Safari浏览器控制台,您可以检查发送到应用程序页面的真实CSP HTTP头
无论如何,您可以测试Safari 13.1是否支持*帧内祖先(由于缺少Safari浏览器,我不能这样做)。它将排除当前版本浏览器错误的情况。它不起作用。我尝试了各种csp组合,包括你的组合,但都不起作用。同样的错误still@turkyoung你找到解决办法了吗?我遇到了完全相同的问题