登录安全教程


Login security tutorial

我在这里遵循了一个教程:http://www.phpeasystep.com/phptu/6.html我想知道这是不是创建安全登录区域的最好方法。

if(!session_is_registered(myusername)){
   header("location:main_login.php");
}

所以它基本上是一个if语句从让人们进入,它甚至访问页面,它是登录只是似乎不太安全的我idk。

任何人都能说明这个问题。也许有一个更好的教程可以更好地介绍安全性。

谢谢

不;那个教程有很大的问题,你不应该用它。

  • 以明文形式存储密码
  • 它使用过时的mysql扩展名(它应该至少使用mysqli)
  • 正如Darren所说,它使用了过时的PHP函数

维基百科稍微好一点;它至少使用SHA-512进行密码散列,但它仍然不是一个很好的登录解决方案。PHP Login项目是一个更好、更完整的示例,可以使用或遵循。

从哪里开始?

session_is_registered() 折旧。<一口> (来源)

警告:此函数已从PHP 5.3.0起被弃用并已删除从PHP 5.4.0开始。

你必须像这样正确地注册你的会话:

session_start();
//.....do processing and whatever
// set session variables etc.
$_SESSION['uid'] = $uid;

并像这样测试是否存在:

session_start();
if(!isset($_SESSION['uid'])) {
    header("location:main_login.php");
}

注意

您需要在尝试访问任何$_SESSION信息之前拥有session_start(),否则它将始终返回false