为 select 个网站创建我的 Rails 应用程序的 iFrame

Create iFrame of my Rails app for select websites

我有一个 Rails 应用程序,我想让客户将其嵌入他们的网站(通过 iFrame 或类似代码),他们可以在其中提交表格并可能查看帐户信息。

我目前不使用 OAuth,但我想知道如何安全地登录它们,因为大多数网站都使用严格的同源和 CORS 设置来防止点击劫持等。

我最初的想法是在 url 中为 iFrame 提供一个带有指定标记的网页,以指定它来自有效站点,但黑客很容易复制粘贴该标记。我很确定 OAuth 试图阻止这种情况,但如前所述,我目前还没有实施。

默认情况下,rails 的 Iframe 选项仅限于同源。如果你想启用外部站点,你可以这样做

config.action_dispatch.default_headers = { 'X-Frame-Options' => 'ALLOWALL' }

这将允许其他网站嵌入您的网站。如果你想限制外部网站。您可以通过在基本控制器中添加以下代码来做到这一点。

response.headers["X-FRAME-OPTIONS"] = "ALLOW-FROM http://dummysite.com"

将此代码保存在一个方法中并使用 before_action

调用