如果有人试图加载我的身份验证文件会发生什么?

时间:2016-06-20 18:08:06

标签: php

  

如果一个持久且恶意的用户幸运并加载了你的一个   秘密文件进入浏览器,而那个秘密文件包含很多   仅在文件被重定向时定义的变量,您做什么?

这是login.php的验证脚本,它是我的 原始 脚本

if (!isset($_POST['email']) && !isset($_POST['pwd'])) {
    header ('Location: http://localhost/grace/verify/login.php');
    exit;
}
// connect to database
$verify = 'SELECT pwd FROM users WHERE email = ?';
// query

if ($password == $storedPwd) {
    $_SESSION['verified'] = 'yay!';
    $_SESSION['start'] = time();
    session_regenerate_id();
    header ("Location: $redirect");
    exit;
} else {
    $error = 'Invalid Email or password';
}
  

可能有很多其他方法可以执行相同的脚本,但在我的方案中,为了解决我的问题,解决方案是我在下面的答案中的答案。

1 个答案:

答案 0 :(得分:-1)

好的,很多读过这篇文章的人甚至懒得阅读我的剧本,我会澄清我的问题并回答我自己的问题。

如果用户说,她很幸运,并加载了一个秘密文件,例如authenticate.php,其中只有在从{{{}等其他页面重定向时才定义变量。 1}}。所以我的解决方案是使用login.php

$_SERVER['HTTP_REFERER']

这将确保没有人可以直接将您的秘密文件加载到浏览器中。