如何仅在文件#2访问时继续文件#1?我使用的是 _SESSION 美元


How To Proceed File #2 Only When Accessed By File #1? I'm Using $_SESSION

我有 2 个文件:

// test-redirect1.php
<?php
  session_start();
  $_SESSION['ctrl_access'] = '81938193813819381';
  // then some codes here...
?>

和这个文件:

// test-redirect2.php
<?php
  session_start();
  if ($_SESSION['ctrl_access'] != '81938193813819381') {
    header( 'Location : goto-hell.php' );
  }
  // then some codes here...
?>

我想让test-redirect2.php仅在test-redirect1.php引用文件时继续。

我试图在test-redirect2.php中使用$_SERVER["HTTP_REFERER"],但如果test-redirect1.php header( 'Location : some-file' );用作重定向,它就不会显示。

另外,我不想向用户显示ctrl_access变量。这就是为什么我不想使用POST/GET方法。

所以,我决定和$_SESSION一起去...

但是,$_SESSION的问题是,一旦我在浏览器上打开test-redirect1.php,就会创建该变量,然后我就可以打开test-redirect2.php并传递if条件。

如何让test-redirect2.php仅在test-redirect1.php引荐来源文件时继续?

谢谢。

"http referer" 变量由浏览器发送。 出于这个原因,这不是一种好的安全方法,因为它很容易被欺骗,但是,您已经回答了有关如何可靠地发送的问题。 当您通过用户单击链接从一个页面移动到另一个页面时,它会发送。

您可以通过多种方式使用 javascript 触发此行为,例如:

document.getElementById('some_link_id').click();

整个想法很糟糕。 成人网站因使用这种技术的安全性而臭名昭著,并且很容易使用允许您设置 HTTP 标头的浏览器插件来利用。

您使用的会话方法要好得多。