gpt4 book ai didi

PHP session 安全提示

转载 作者:行者123 更新时间:2023-12-02 07:12:18 24 4
gpt4 key购买 nike

这就是我目前在登录页面上创建 session 的方法。

if($count==1) {

$_SESSION['username'] = $username;
$_SESSION['password'] = $password;
}

我知道这是非常基本的,我需要保护用户 session 。你能给我一些基本的技巧吗?如果您可以编辑代码并编写安全代码,那就太好了。谢谢。

目前,我使用电子邮件地址作为 session 用户名。

最佳答案

问自己这个问题:

  • 用户名在数据库中是唯一的,为什么我要存储密码

在回答完您应该得出它毫无意义的结论之后,您可以在登录系统时将用户名或用户 ID 存储在 session 中。

登录系统的工作原理是用户将用户名密码从表单发送到验证服务器,在验证过程中,您从数据库中选择用户 where username = post_username .

如果没有找到用户不存在的行,那么此时您可以直接发送输出,如果用户确实存在,则将密码与 post_password 进行比较。

我们之所以仅通过用户名专门选择该行,是因为您应该合并某种散列系统以增加额外的安全性。

如果您将密码存储为 (password + hash) 这将是一个新字符串,您也将只存储哈希,因此如果找到用户,则您可以从 (post_password + db_hash ) 并检查它是否与 db_password 相同。

这样,如果您的数据库以某种方式泄露,您的用户凭据会更加安全。

一旦用户通过验证,您可以将用户 ID 存储在 session 中,然后在每次加载页面时,您可以检查该 ID 是否在 session 中,如果是,用户当前是否已登录,您可以选择用户数据 SELECT * FROM users WHERE id = session_id

这应该可以帮助您入门。

关于PHP session 安全提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4696072/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com