5

以模型-视图-控制器方式编写身份验证库时,最好和最安全的方法是什么?

让我很难过的事情是跟踪用户活动并通过 cookie 记住用户或在数据库中存储会话?

提前致谢 :)。

4

2 回答 2

4

如果您想使用会话,您可以保护它们免受会话固定会话劫持等攻击。

为了防止这两种情况,您必须确保只允许经过身份验证的请求使用会话。这通常通过在会话中链接尽可能多的关于客户端的特定(可能是唯一的)信息来完成。但由于某些信息可能会在每次请求时发生变化(例如 IP 地址),因此很难找到好的信息。
这就是为什么使用表示为Trending的方法很有用的原因。

另一个好的保护措施是定期交换会话 ID。因此,对有效会话 ID 的攻击时间更短。

于 2009-01-24T12:03:20.483 回答
3

实现它的最简单方法是使用 PHP SESSIONS。

只是 session_start(); 在脚本开头附近,您可以访问 $_SESSION 全局数组来保存您的身份验证数据。

根据您服务器的配置,存储在 $_SESSION 中的所有数据将仅在托管它的服务器上可用(少数例外)。您可以将其配置为保存在临时目录、memcached 甚至数据库中。

客户端和服务器之间传输的唯一内容是“会话密钥”。密钥可以通过 cookie 或 URL 重写(由 start_session 输出缓冲区透明地处理)传递。

于 2009-01-24T10:27:32.767 回答