【问题标题】:chrome recaptcha allowall in iframe on subdomain子域上 iframe 中的 chrome recaptcha allowall
【发布时间】:2021-05-05 20:18:30
【问题描述】:

我正在使用谷歌的 reCaptcha,它在子域中运行良好,但是当我尝试使用 iframe 在主站点中显示该子域的页面时,api.js 和 webworker.js 最终使用 SAMEORIGIN 并导致 chrome不显示文件。子域在 x-frame-options 上显示为 ALLOWALL,但是这两个返回 SAMEORIGIN,导致 chrome 生气并将其退回到 Deny。

我能够将 api.js 文件复制到子域站点中,这会导致该文件的 x-frame-options 为 ALLOWALL,但 reCaptcha 代码最终会加载从 google 加载的 webworker.js ,我无法改变这一点。我什至不确定它在哪里加载,因为它不在 api.js 文件中。

除了将子域代码完全移动到主站点之外,还有什么建议吗?我无法将 recaptcha 移动到主站点,因为它会在 iframe 之外运行。

【问题讨论】:

    标签: javascript google-chrome recaptcha x-frame-options


    【解决方案1】:

    Chrome 和其他浏览器只支持 DENY 和 SAMEORIGIN。解决方案是设置 Content-Security-Policy 并将 frame-ancestors 指令设置为应允许构建的所有(子)域。这通常是“'self' subdomain.example.com”或简单的“*.example.com”。 IE 不会理解它并因此忽略它,其他理解它的浏览器现在将忽略 X-Frame-Options。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-10-18
      • 2012-06-01
      • 1970-01-01
      • 2012-08-31
      • 2021-10-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多