检查网站是否在 iframe 内

2022-08-30 13:16:36

任何人都知道是否有可能用PHP检查一个网站是否在iframe内。

我知道JavaScript是可能的,但我找不到PHP的任何例子?


答案 1

PHP 从来不在 iframe 中。PHP在服务器端执行,并生成HTML,Javascript或文本等输出。PHP 生成的输出可以生成或驻留在 iframe 中,但永远不会生成或驻留在 PHP 本身。


其他详细信息

关于您在评论中添加的其他详细信息(您希望区分直接对您的网站的请求和通过Facebook应用程序的请求),您可以使用以下几种技术:

  1. $_SERVER['HTTP_REFERER']:

您可以检查引荐来源网址,以确定请求是来自 Facebook 网址、您自己网站上的其他页面、第三方网站,还是直接流量。此方法并非万无一失,但提供的信息可能比应用程序当前接收的信息多。

  1. 单独的网址

您可以为网站上运行的应用程序和 Facebook 版本创建单独的 URL。使用 ,您可以轻松检测应用程序是通过“yoursite.com/fbapp”还是“yoursite.com/localapp”访问的。这两个URL都可以通过Apache的mod_rewrite或您选择的别名解决方案来引用相同的脚本。$_SERVER['REQUEST_URI']

  1. 网址参数

此方法可能是最容易实现的。如果您在向 Facebook 提供应用程序 URL 时可以提供 URL 参数,只需添加一个参数即可。例如:

?access_method=facebook

在 PHP 中,您可以轻松检查参数的存在性和值,并根据需要采取措施。access_method


答案 2

对于任何登陆这个旧线程的人来说:有一种非常简单的方法可以签入PHP,无论您的页面是否通过iframe加载。

if( isset($_SERVER['HTTP_SEC_FETCH_DEST']) && $_SERVER['HTTP_SEC_FETCH_DEST'] == 'iframe' ) {}

推荐