如何仅允许白名单网站嵌入 iframe?

     2023-02-27     145

关键词:

【中文标题】如何仅允许白名单网站嵌入 iframe?【英文标题】:How to allow iframe embedding only for whitelisted websites? 【发布时间】:2017-01-21 20:11:23 【问题描述】:

我想将一个表单嵌入到我的白名单中的网站中。

尝试嵌入它的其他网站应该只会得到一个错误页面。

<iframe src="https://domain.tld/getForm.php?embed=1&formId=123456"></iframe>

我希望我可以在getForm.php 中使用$_SERVER['HTTP_REFERER'] 来检查嵌入网站,但它不起作用。

有没有人知道最佳实践或解决方法?

提前致谢!

【问题讨论】:

您必须检查向getForm.php 发出请求的远程地址的 IP,但是,IP 可能会被欺骗。看看$_SERVER supper global。我认为REMOTE_ADDR 将是发出呼叫的站点的 IP,但我不能 100% 确定,这可能只是客户端 IP。 您能找到解决方案吗?我试过 $_SERVER['HTTP_REFERER'] 并且它工作正常,但我在某处读到它可以被欺骗,所以有更好的解决方案吗? 【参考方案1】:

大多数浏览器都会支持 X-Frame-Options 标头。

此标头将阻止访问:

X-Frame-Options: SAMEORIGIN

并且这个标头允许访问:

X-Frame-Options: ALLOW-FROM [uri]

选项示例:

X-Frame-Options: DENY
X-Frame-Options: SAMEORIGIN
X-Frame-Options: ALLOW-FROM https://example.com/

PHP 中的一个例子:

<?php header('X-Frame-Options: SAMEORIGIN'); ?>

您可以在此处进一步阅读: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options

希望对你有所帮助!

【讨论】:

allow-from 现在已过时 是否有另一种方式允许来自特定域,因为允许来自已过时。 你可以使用Content-Security-Policy: frame-ancestors 'self' yoursites;【参考方案2】:

现在推荐使用内容安全策略标头。

来自 MDN 的示例:

// iframe can be embedded in pages on the origin and also on https://www.example.org
Content-Security-Policy: frame-ancestors 'self' https://www.example.org;

更多详情见:https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/frame-ancestors

【讨论】:

只是为了帮助其他人,我必须在我的 apache conf 中以这种方式设置它。标头集 Content-Security-Policy "frame-ancestors 'self' iframetester.com;"

如何从 ASP.NET 的白名单中过滤 UrlReferrer?

】如何从ASP.NET的白名单中过滤UrlReferrer?【英文标题】:HowtofilterUrlReferrerfromawhitelistinASP.NET?【发布时间】:2021-10-1020:00:14【问题描述】:我需要创建一个单独的页面,该页面将成为现有ASP.NETMVC网站的一部分,该网站只有在来自... 查看详情

ini使用apache保护特定位置仅允许一系列ip(和/或域)[白名单ip](代码片段)

查看详情

检查网站是不是不允许嵌入 iframe

】检查网站是不是不允许嵌入iframe【英文标题】:Checkingifawebsitedoesn\'tpermitiframeembed检查网站是否不允许嵌入iframe【发布时间】:2011-11-1708:22:18【问题描述】:我正在为我的应用程序编写一个类似灯箱的简单插件,我需要嵌入一... 查看详情

在不将 ip 列入白名单的情况下限制对 S3 托管网站的访问

...的网站,我们打算仅由有限的一组人访问。现在,我们将允许的IP列入白名单,如RestrictaccesstowebsitehostedonS3中所述。但是,某些必须有权访问该网 查看详情

仅在特定域上加载 iframe

...不希望任何人能够在未经我许可的情况下使用iframe内容。如何仅允许我选择的域能够将iframe嵌入页面内容?我知道vimeo会这样做,并允许视频所有者在他们认为不合适的某些网站上屏蔽视频。我想要服务器端ASP.NET 查看详情

如何配置 Kubernetes Ingress Nginx 注释白名单仅适用于 http

】如何配置KubernetesIngressNginx注释白名单仅适用于http【英文标题】:HowtoconfigKubernetesIngressNginxanontationswhitelistonlyapplytohttp【发布时间】:2018-12-1708:22:36【问题描述】:我已经配置了我的入口支持SSL:apiVersion:extensions/v1beta1kind:Ingress... 查看详情

托管节点是不是支持仅调用列入白名单的智能合约?

...单智能合约。我使用了>dry-runAPI。但似乎行不通。对于如何解决此问题的任何建议,我将不胜感激。附言智能合 查看详情

如何像 soundcloud 那样在新闻源中嵌入内联 iframe?

】如何像soundcloud那样在新闻源中嵌入内联iframe?【英文标题】:Howdoembedaninline-iframeinthenewsfeedlikesoundclouddoes?【发布时间】:2015-04-0120:33:52【问题描述】:我觉得这个问题被问了很多次,但似乎没有人有答案。Facebook似乎正在将sou... 查看详情

如何让 Jsoup 白名单接受某些属性内容

】如何让Jsoup白名单接受某些属性内容【英文标题】:HowtomakeaJsoupwhitelisttoacceptcertainattributecontent【发布时间】:2014-04-2201:20:03【问题描述】:我正在使用带有宽松白名单的Jsoup。看起来很完美,但我想保留嵌入的图像标签,如&... 查看详情

根据国家/地区重定向,但如果 IP 被列入白名单则允许

...家。如果我的IP地址来自应该全部重定向的国家/地区,我如何才能将其列入白名单?require_once(\'geoplugin.class 查看详情

使用 Apache 将 CORS 列入白名单

...管在其他地方。这就是CORS的全部意义所在。有很多关于如何通过mod_headers启用CORS的描述。几乎所有人都将 查看详情

confluence6白名单允许进入和禁用(代码片段)

允许进入启用CORS请求,将会从特定的URL来源中允许进入(AllowIncoming)。URL格式必须匹配格式scheme://host[:port],结尾是没有反斜杠的(:port是可选的)。因此http://example.com/将不会允许从 example.com.来的CORS请求。禁用白名单白名... 查看详情

confluence6白名单允许进入和禁用(代码片段)

允许进入启用CORS请求,将会从特定的URL来源中允许进入(AllowIncoming)。URL格式必须匹配格式scheme://host[:port],结尾是没有反斜杠的(:port是可选的)。因此http://example.com/将不会允许从 example.com.来的CORS请求。禁用白名单白名... 查看详情

尽管在响应标头中将 iframe 选项设置为 Sameorigin,但允许其他站点嵌入视频

】尽管在响应标头中将iframe选项设置为Sameorigin,但允许其他站点嵌入视频【英文标题】:AllowothersitestoembedvideosthoughiframeoptionsissettoSameoriginintheresponseheader【发布时间】:2016-07-0315:39:31【问题描述】:我们有一个很像Youtube的视频... 查看详情

charles——charles工具栏tools总结——白名单

白名单工具,允许您阻止除选定位置之外的所有请求。注意:如果一个请求与“黑名单”和“白名单”同时匹配成功,则会被阻止。白名单工具白名单是除了你设置的HOST以外,阻止所有请求。  当Charles收到与... 查看详情

在不将应用列入白名单的情况下避免打盹模式

...我的网络服务发送进一步的位置更新。除了通过请求用户允许忽略电池优化(仅允许 查看详情

如何使用 Flask CORS 将域列入白名单

】如何使用FlaskCORS将域列入白名单【英文标题】:HowtowhitelistdomainusingFlaskCORS【发布时间】:2020-04-0812:23:48【问题描述】:我无法让FlaskCORS将某些域列入白名单,使其无法执行POST请求。我正在从www.google.com发出curl请求,但使用域g... 查看详情

IE11 中的 iframe 内容仅显示白屏

】IE11中的iframe内容仅显示白屏【英文标题】:iframecontentinIE11isshowsonlywhitescreen【发布时间】:2019-04-1501:05:57【问题描述】:我需要使用JavaScript在iframe标签中显示一个pdf文件这是我的iframe<iframeid="iframeFile"name="iframeFile"src=""title="F... 查看详情