0

我正在使用 PHP 和 Codeigniter 来执行此操作。目前,我只是将用户名和 $logged_in 变量设置为 true 的 cookie 保存给用户。然后,当他们尝试访问一个页面时,我会检查他们的 $logged_in 的状态,如果是,他们就可以自由访问。

我突然想到这可能不是最安全的方法。我应该使用更好的策略吗?

4

2 回答 2

3

这根本不安全。Cookie 被视为用户输入,在任何情况下都不可信。

改用会话。您也可以使用某种自定义登录加密代码(我个人建议使用 SHA1),它与数据库中的登录代码匹配,并且每隔 5 分钟刷新一次。

于 2012-11-23T20:54:33.370 回答
0

CodeIgniter 为这个问题提供了一个很好的解决方案——你可以使用数据库会话。

使用数据库会话,您放入会话中的所有数据都存储在 SQL 数据库中。用户会获得一个带有唯一会话 ID 的 cookie,该 ID 会定期更改。会话 ID 连同 IP 和用户代理用于将用户与其会话数据进行匹配,从而使用户无法篡改自己的会话数据,也很难劫持他人的会话。

您可以在CodeIgniter 用户指南中阅读有关 CodeIgniter 数据库会话的更多信息。

于 2012-11-25T02:01:46.157 回答