gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-10-31 22:32:02 24 4
gpt4 key购买 nike

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

有什么办法可以确保它只能在那些网站上使用,而不能被其他任何人使用

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

但是,无论如何都知道托管 iframe 的网站的顶级域名吗?

大概这不是在 iFrame 的 http 请求中发送的?还是我没看到?

或者您需要从 javascript 发送域名吗?

有什么建议吗?

最佳答案

However, is there anyway to know the top level domain of the site hosting the iframe?

没有可靠的东西。

Presumably this is not sent in the http request for the iFrame? Or is it, I couldn’t see it?

可能在引用者中发送

Or do you need to send the domain from javascript?

如果要从framed page中获取,会被同源策略拦截。

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

还有the X-Frame-Options header (但浏览器支持有限)。

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

  1. 要求在用于加载框架的查询字符串中指定来源
  2. 检查推荐人。如果它与您的白名单不匹配并且不是空白,则重定向到一个空白页面,除了使用 target="_top" 和一些 top.location = "your site"
  3. 的 JavaScript
  4. 检查查询字符串中指定的来源是否在您的白名单中,如果它的行为方式与被拒绝的步骤 2 不同
  5. 输出一个 X-Frame-Options header ,将框架限制到指定的来源

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

关于c# - 检查 iFrame 是否由允许的域托管,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14610171/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com