如何允许我的PHP文件只加载到iframe中

时间:2017-09-17 07:40:18

标签: javascript php

我正在尝试保护我的内容免受example.php文件的影响。因此,我需要禁止直接访问此页面以及任何未经我许可的iframe指向它。

我配置一个名为iframe.php的php文件,从example.com加载iframe。这就是我的方式:

示例代码.php:

<?php
 session_start();
 if(!isset($_SESSION['iframe']) || !isset($_GET['internal']) || $_SESSION['iframe'] != $_GET['internal'])
{
    die("This page can be accessed just from within an iframe");
}
 unset($_SESSION['iframe']);
 ?>

iframe.php的代码

<?php
session_start();
$_SESSION['iframe'] = md5(time()."random sentence");
?>
<iframe src="example.php?internal=<?php echo $_SESSION['iframe'];?>" width="500" height="100"></iframe>

效果很好。但是,当我点击iframe.php中的任何链接时,我将被重定向到其他页面。之后,我单击浏览器中的“返回”按钮并收到消息:“只能从iframe中访问此页面”。

请你回来后帮我保持页面完美运行吗?

感谢您的阅读。

2 个答案:

答案 0 :(得分:0)

简单,你可以通过Javascript来实现。

if(window==window.top) {
    // not in an iframe
}

答案 1 :(得分:0)

在具有iframe代码的文件中,只需设置php cookie:

<?php
   setcookie("stackoverflow", 1);
?>

在您的php文件中添加代码:

<?php
   if(isset($_COOKIE['stackoverflow'])){
      echo "";
   }
   else{
      die('Good Bye');
   }
?>

最好的问候;)