Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.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_Mysql_Security_Session_Login - Fatal编程技术网

PHP如何启动安全会话

PHP如何启动安全会话,php,mysql,security,session,login,Php,Mysql,Security,Session,Login,目前,我正在启动一个会话,如下所示: if ($hasher->CheckPassword($password, $hash)) { //$hash is the hash retrieved from the DB $what = 'Authentication succeeded'; $_SESSION['username']=$_POST['username']; header('Location: securedpage1

目前,我正在启动一个会话,如下所示:

if ($hasher->CheckPassword($password, $hash)) { //$hash is the hash retrieved from the DB 
        $what = 'Authentication succeeded';
            $_SESSION['username']=$_POST['username'];
         header('Location: securedpage1.php');
    } else {
        $what = 'Authentication failed';
        echo "Incorrect Password";
        include 'login.php';
        exit();

    }
如你所见,我想知道你的会话['username']=$\u帖子['username']是启动会话的最佳方式,或者如果有更好的做法


谢谢您的回复

示例中没有显示它,但我假定您的代码中有一个
会话\u start()
?您可以在此处了解有关会话开始的更多信息:

示例中没有显示它,但我假定您的代码中有一个
会话\u start()
?您可以在此处了解有关会话开始的更多信息:

您可以使用数据库作为存储点而不是文件系统来滚动自己的会话处理程序。这有几个安全优势,例如,在共享主机上,存储在文件系统中的会话数据可能会受到破坏。正如我在评论中提到的,您还可以用这种方式存储“源”IP地址,并将其绑定到会话,并使从原始IP以外的IP访问的任何会话无效


本文非常详细地解释了:

您可以使用数据库作为存储点而不是文件系统来运行自己的会话处理程序。这有几个安全优势,例如,在共享主机上,存储在文件系统中的会话数据可能会受到破坏。正如我在评论中提到的,您还可以用这种方式存储“源”IP地址,并将其绑定到会话,并使从原始IP以外的IP访问的任何会话无效


这篇文章非常详细地解释了:

$\u SESSION['username']=$\u POST['username']
实际上并不启动会话,
会话\u start()
启动会话。所以你的问题放错地方了

这行代码本身没有什么问题

如果您想了解有关编写安全会话代码的一些信息,请从这里开始:

您可以搜索的两个安全关键字是“会话固定”和“会话劫持”。另外两个常见的安全问题是XSS攻击和CSRF攻击


stackoverflow上已经有大量关于此主题的问题,您应该搜索

$\u SESSION['username']=$\u POST['username']
实际上并不启动会话,
会话\u start()
启动会话。所以你的问题放错地方了

这行代码本身没有什么问题

如果您想了解有关编写安全会话代码的一些信息,请从这里开始:

您可以搜索的两个安全关键字是“会话固定”和“会话劫持”。另外两个常见的安全问题是XSS攻击和CSRF攻击


stackoverflow上已经有大量关于此主题的问题,您应该搜索

我将检索用户ID并将其存储在会话中。我喜欢我的会话数据是明智的,一个有效的ID是一个例子。谢谢你的答复,你能解释一下我将如何检索用户ID,并将其存储在会话?什么是“安全会话”,为什么你认为你的当前会话不安全?不,我需要知道你的应用程序。我假设您有一个数据库后端,并为每个注册用户分配一个唯一的(通常为数字)ID,这是一个常见的设置。如果您不使用ID,则用户名也可以,只要您确保它与实际用户相对应。请在邮件中仅说明用户名/密码组合不正确(或类似的文字)。否则,黑客至少知道用户名是正确的。我将检索用户ID并将其存储在会话中。我喜欢我的会话数据是明智的,一个有效的ID是一个例子。谢谢你的答复,你能解释一下我将如何检索用户ID,并将其存储在会话?什么是“安全会话”,为什么你认为你的当前会话不安全?不,我需要知道你的应用程序。我假设您有一个数据库后端,并为每个注册用户分配一个唯一的(通常为数字)ID,这是一个常见的设置。如果您不使用ID,则用户名也可以,只要您确保它与实际用户相对应。请在邮件中仅说明用户名/密码组合不正确(或类似的文字)。否则黑客至少知道用户名是正确的。谢谢你的回复,这就是我要找的,我为我缺乏正确的术语道歉!谢谢你的回复,这是我一直在寻找的,我为我缺乏合适的术语道歉!谢谢,我再次为没有正确回答这个问题而道歉,这将对我帮助很大!非常感谢,再次为我没有正确陈述问题而道歉,这将对我帮助很大!非常感谢