如何跟踪整个网站的用户会话?

Hig*_*ler 0 html javascript php session

我有一个三页的网站。blog.htmlhome.htmlgames.html

我在每个页面上向我的服务器发出 ajax 请求,以跟踪用户访问了哪些页面。

我想知道,跟踪用户的最佳方法是什么sessions。例如,我的朋友史蒂夫,访问我的网站,home.html然后决定访问,games.html然后最终决定访问,blog.html然后关闭他的计算机。

这就像我对浏览量进行分组的用户的整个“会话”。实现这一点的最佳做法是什么?

先感谢您!

想法:一个想法是使用 javascript 引用 URL 跟踪会话。这是一个好方法吗?

Phi*_*ipp 5

您可以使用PHP 会话,这是针对此常见问题的现成解决方案。

当您真的想建立自己的教育练习时,这就是它们的工作方式:

当用户访问网站时,PHP 脚本会检查是否已设置cookie。当没有 cookie 时,它​​会自动生成一个随机 ID 并将其写入 cookie。这些 SessionID 和有关用户会话状态的所有信息都保存在服务器端。当您拥有数据库时,您可以将其存储在那里,但您也可以在需要时使用文件。

sessionID 应该是唯一的,以避免重复和无法猜测,这样任何用户都不能伪造他们的 sessionID 来窃取另一个用户的身份。因此,您的 sessionID 生成算法应包括当前时间(以毫秒为单位)和随机数。

当用户禁用 cookie 时,您仍然可以通过将他们的 SessionID 作为GET 参数放入您网站上的每个链接来跟踪他们。例如,当用户 SessionID 为 1f6fe6894d32c5 时,urlhref="games.php"变为href="games.php?sid=1f6fe6894d32c5

当您使用 url-method 时,您还应该将 sessionID 绑定到 IP 地址,因为当用户发布指向您网站的链接时,他们可能会忘记从 URL 中删除他们的 sessionID,您的网站会相信每个点击链接的人都是一样的用户。但即使您确实检查了 IP,它仍然可能导致同一代理或 NAT 路由器后面的用户之间无意(或有意)窃取会话。因此,不要将 URL sessionID 用于任何安全重要的事情。