1

我第一次用用户帐户建立一个网站。我正在使用户登录安全。在注册时,我在保存密码之前对密码进行哈希处理,然后在登录时如果密码正确,我使用 setCookie 保存一个带有用户信息的 cookie。

现在劫持一个帐户就像修改 cookie 值一样简单。我想让网站安全,但我正在阅读的大多数选项似乎太复杂了,我想使用我自己可以做的事情。我已经阅读了几个教程,并且对如何做到这一点有一个基本的了解,但不知道它有多安全。

我的想法是为会话制作一个表格并存储用户 ID + 一个随机值,同时保存一个 cookie 并检查每个页面都根据表格加载两个值,如果它们正确则更新它们。这看起来很简单,即使用户从不同的地方登录也可以工作,但我不知道它有多安全。cookie 是可见的,但我看不到任何劫持会话的方式,除非有人偷了 cookie 并在更新之前使用它。

这安全吗?我还可以使用什么其他简单的方法?

4

1 回答 1

2

为什么不将用户名存储在会话变量中?客户端存储一个随机 ID 并将其呈现给服务器。然后,服务器将其与用户名(服务器在本地拥有)匹配。只有服务器可以看到用户名。它也很容易编码,PHP 会创建随机 ID 并将其提供给客户端。此外,如果用户将 ID 更改为其他内容,他们几乎不可能偶然发现另一个已存在且正在被其他登录用户使用的 ID。

session_start();

//setting the username after they log in
$_SESSION['username'] = $username;

//retrieving the username
//this will work from any file as long as they are on the same server for the same domain
$username = $_SESSION['username'];
于 2012-10-23T04:02:18.437 回答