【问题标题】:Load iframe on specific domains only仅在特定域上加载 iframe
【发布时间】:2012-07-14 17:04:46
【问题描述】:

我想允许一些网站在我的域中嵌入 iframe。但是,我不希望任何人能够在未经我许可的情况下使用 iframe 内容。如何仅允许我选择的域能够将 iframe 嵌入页面内容?

我知道 vimeo 会这样做,并允许视频所有者在他们认为不合适的某些网站上屏蔽视频。

我想要服务器端 ASP.NET 解决方案,因为可以更改 Javascript 代码。但是,如果它可以使用 javascript 代码和它的安全来完成,那没关系。

据我所见,我需要以某种方式传递引荐来源网址,但这种方式可以由其他网站所有者手动更改以包含 iframe,并且它也可以在他们的网站上运行,无需获得许可.

【问题讨论】:

  • 您可以检查 header referrer 和/或使用嵌入在 URL 或 Javascript 中的 API 或系统密钥。哦,我想要一只小狗。
  • 它是您希望允许加框的独立页面,还是将导致您域中其他页面的加框页面,您也希望将其加框?
  • 我允许 iframe 的标准页面

标签: asp.net html iframe


【解决方案1】:

由于它将是您在 cmets 中提到的独立页面,因此您可以通过检查 referer 属性来做到这一点。

Request.UrlReferrer

查看它是否包含您要允许的域。当嵌入器将您的页面放入 IFRAME 的 SRC 属性并首次加载页面时,此属性可用。

如果用户单击 IFRAME 内的链接,则不能保证将包含页面作为引荐来源网址传递。

如果您想允许 IFRAME 内的多个链接页面允许特定域,那么您需要坚持使用 JavaScript based solution

但是请注意,这两种方法都不是万无一失的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-16
    • 2014-09-16
    • 2019-09-30
    • 1970-01-01
    • 2019-04-12
    • 2011-07-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多