检查iFrame是否由允许的域托管

Chr*_*sCa 3 html javascript c# http

我正在开发一个iframe,用于我们的许多合作伙伴网站.

有什么方法可以确保它只能在这些网站上使用,而不是由其他任何人使用

我打算在网站的URL中添加强制查询字符串.每个合作伙伴在quesrystring dnd中使用不同的值来查找允许的域

但是,有没有想知道托管iframe的网站的顶级域名?

据推测,这不是在iFrame的http请求中发送的?或者是它,我看不到它?

或者你需要从JavaScript发送域名?

有什么建议?

Que*_*tin 6

但是,有没有想知道托管iframe的网站的顶级域名?

没什么可靠的.

据推测,这不是在iFrame的http请求中发送的?或者是它,我看不到它?

它可能会在引用者中发送

或者你需要从JavaScript发送域名?

如果要从框架页面获取它,您将被相同的原始策略阻止.

如果你想从框架页面发送它,你将它放在查询字符串中,你不能相信它,因为它可以设置为编写框架页面所喜欢的人.

还有X-Frame-Options标头(但是浏览器支持有限).

我能想到的最可靠的解决方案是:

  1. 要求在用于加载框架的查询字符串中指定原点
  2. 检查引用者.如果它与您的白名单不匹配且不是空白,则重定向到空白页面,除了指向您网站的链接target="_top"和一些JavaScripttop.location = "your site"
  3. 检查查询字符串中指定的来源是否在白名单中,如果它的行为与拒绝的步骤2相同
  4. 输出X-Frame-Options标题,将框架限制为指定的原点

这可能会吸引足够的浏览器来阻止框架网站构建您的网站.