Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
以模型-视图-控制器方式编写身份验证库时,最好和最安全的方法是什么?
让我很难过的事情是跟踪用户活动并通过 cookie 记住用户或在数据库中存储会话?
提前致谢 :)。
如果您想使用会话,您可以保护它们免受会话固定和会话劫持等攻击。
为了防止这两种情况,您必须确保只允许经过身份验证的请求使用会话。这通常通过在会话中链接尽可能多的关于客户端的特定(可能是唯一的)信息来完成。但由于某些信息可能会在每次请求时发生变化(例如 IP 地址),因此很难找到好的信息。 这就是为什么使用表示为Trending的方法很有用的原因。
另一个好的保护措施是定期交换会话 ID。因此,对有效会话 ID 的攻击时间更短。
实现它的最简单方法是使用 PHP SESSIONS。
只是 session_start(); 在脚本开头附近,您可以访问 $_SESSION 全局数组来保存您的身份验证数据。
根据您服务器的配置,存储在 $_SESSION 中的所有数据将仅在托管它的服务器上可用(少数例外)。您可以将其配置为保存在临时目录、memcached 甚至数据库中。
客户端和服务器之间传输的唯一内容是“会话密钥”。密钥可以通过 cookie 或 URL 重写(由 start_session 输出缓冲区透明地处理)传递。