我有一个用PHP运行的网站,我有一个页面(比如confirm.php)
而且我只想允许登陆确认的用户来自我指定的页面(例如说是register.php),我可以知道是否可以实现这一点?
问候,安迪.
您不能依赖HTTP REFERER,因为用户可以操纵它,浏览器可以拒绝发送它.
唯一的"安全"方法是在register.php上设置会话变量,并检查该变量是否在confirm.php上设置.像这样的东西:
register.php:
session_start();
$_SESSION['valid_user'] = true;
Run Code Online (Sandbox Code Playgroud)
confirm.php:
session_start();
if(!isset($_SESSION['valid_user'])) {
die("You did not come from the page i specified!");
}
Run Code Online (Sandbox Code Playgroud)
但是,这不会考虑最新页面是否为register.php,但用户已经在register.php上.
由于HTTP是无状态的,因此您需要在服务器级别跟踪此情况.如果您没有可以跟踪所有综合浏览量的经过身份验证的用户,则实施起来非常困难.你真的需要它有多安全?