【问题标题】:Allowing URL access only via an iFrame and prevent from direct access in PHP仅允许通过 iFrame 访问 URL,并防止在 PHP 中直接访问
【发布时间】:2024-01-31 05:30:01
【问题描述】:

我有一个网站文件夹,其中包含一些 PHP 内容。我希望它只能通过 iframe 访问。并希望防止使用直接 URL 访问。

允许访问 <iframe src="example.com/chocos.php"></iframe>

如果直接访问,则重定向访问example.com/chocos.php URL。

我为此添加了一个 javascript。

<script>if(window==window.top) { window.location.href = "/"; } </script>

但我想用 PHP 来做这件事。谁能帮我解决这个问题?

【问题讨论】:

  • PHP 无法知道浏览器是否会在 iframe 中显示请求的资源。 PHP 脚本最终是一个程序,它导致通过网络连接发送一堆文本/二进制文件。它确实会收到一些关于谁在请求它的(欺骗性)信息,但不会收到它是否会以 iframe 的src 结尾。

标签: javascript php iframe


【解决方案1】:

您可以通过 php 使用 cookie 来实现:

在具有 iframe 代码的主页上,保存一个新的 cookie,但不为其设置过期日期:

setcookie("allowAccess", 1);

然后,在加载到 iframe 中的文件上,在您的情况下为“chocos.php”:

if(isset($_COOKIE['allowAccess'])
    {
       //your content here;
    }
else
    {
       //your redirection here
    }

所以如果用户不访问主页面,浏览器中不会设置alloweAccess cookie,所以iframe页面会按照你的意愿进行重定向。

【讨论】:

    最近更新 更多