Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/235.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
登录身份验证令牌php。。卡住了_Php - Fatal编程技术网

登录身份验证令牌php。。卡住了

登录身份验证令牌php。。卡住了,php,Php,当用户注册帐户时,将创建一个包含列的表;用户ID和令牌。这是因为如果用户在登录不同的计算机时选中MemberMe,则每台计算机都有不同的令牌 register.php //user specific table created $create = $connectdb->prepare("CREATE TABLE `user-:username` (userid INT, token varchar(200)"); $executeq

当用户注册帐户时,将创建一个包含列的表;用户ID和令牌。这是因为如果用户在登录不同的计算机时选中MemberMe,则每台计算机都有不同的令牌

register.php

//user specific table created    
$create = $connectdb->prepare("CREATE TABLE `user-:username` (userid INT, token varchar(200)");
                        $executequery = $create->execute(array("username"=>$username)); 
下面是login.php的一个片段;我创建令牌,将令牌存储在cookie中,并将令牌插入到特定于用户的表中

  if($remember==1) {
                            $token = md5(uniqid('',true));
                            setcookie('token',$token,time()+60*60*24*365);

                            $rememberquery = $connectdb->prepare("INSERT INTO `user-:username` VALUES ('',:username,:token)");
                            $rememberquery->execute(array(":username"=>$username,":token"=>$token));
$_SESSION['username'][0] = $username;       
$_SESSION['username'][1] = $userid;                 
                            }

现在我被卡住了(假设我正确地完成了前面的工作)。何时/如何将cookie令牌检查到数据库令牌?

正确的身份验证很难正确执行,因此,您必须时不时地扮演一个小黑客,以使事情基本正确。首先,您应该阅读和owasp页面的一般情况

本课程结束后,您应该了解会话管理的注意事项。但如果你需要一张“记住我”的备忘单;)应该是这样的:

  • 值应该是完全随机的,或者是加密性强的(这可能很棘手)
  • 应在收到后进行验证
  • 永远不要相信你从cookie中得到的东西,所以如果在cookie中存储用户名后没有进行适当的验证,那么将用户名存储在cookie中是一个非常糟糕的主意
  • 如果会话过期,创建一个新会话,用表中的数据填充它,瞧
  • 如果您需要持久化某些内容,请使用数据库而不是cookie cookies是不好的且不可信的;)

微软也出版了一本很好的出版物,它可以帮助你很多

正确的身份验证是很难做到的,因此,你必须时不时地扮演一个小黑客,以使事情基本正确。首先,您应该阅读和owasp页面的一般情况

本课程结束后,您应该了解会话管理的注意事项。但如果你需要一张“记住我”的备忘单;)应该是这样的:

  • 值应该是完全随机的,或者是加密性强的(这可能很棘手)
  • 应在收到后进行验证
  • 永远不要相信你从cookie中得到的东西,所以如果在cookie中存储用户名后没有进行适当的验证,那么将用户名存储在cookie中是一个非常糟糕的主意
  • 如果会话过期,创建一个新会话,用表中的数据填充它,瞧
  • 如果您需要持久化某些内容,请使用数据库而不是cookie cookies是不好的且不可信的;)
微软也出版了一本很好的出版物,它可以帮助你很多