5

$_SESSION大约几周前,我在创建登录页面时了解到。我可以成功登录并将其与变量一起使用。目前我正在尝试理解$_SESSION$_COOKIE。如果我错了,请纠正我,我可以$_SESSION在登录和移动页面时使用。使用$_COOKIE,它用于记住我上次访问的时间和偏好。

涉及 cookie 的另一件事是,当网站使用广告(例如:Google AdSense)时,它们会使用 cookie 来跟踪访问者何时点击广告,对吗?

我可以同时使用 ( $_SESSION& $_COOKIE) 吗?我在某处读到您可以存储session_idcookie 的 as 值。

另外,我阅读了有关安全性的信息,这让我发现了这一点:用户登录时,我需要在 php 会话中存储什么?. session_regenerate_id当用户返回网站时使用是否有用?

还有这个:如何使用 php 存储 cookie涉及uniqid.

对于那些想知道登录的人,我使用电子邮件和密码。这样用户就可以更改他们的用户名。

我期待从任何愿意分享他们知识的人那里了解更多关于这两个的信息。如果我问的问题太多,你可以回答你有更多经验的问题。

如果您需要更多信息,请询问,因为我可能忘记包含某些内容。

谢谢你。


发现:在允许在我的网站上放置广告之前,我应该注意哪些风险?

4

1 回答 1

13

简单来说,$_SESSION$_COOKIE是不同的。两者都是 php 全局变量,但 cookie 的使用没有语言限制。 $_SESSION就是将数据存储在服务器中,同时将会话 ID 存储为 cookie。$_COOKIE浏览器发送给服务器的cookies。这是主要的区别。如果客户端浏览器禁用了 cookie,会话将不起作用。

- 安全 -

如果您检查浏览器发送的请求标头,您会注意到每个请求中都有 cookie 信息。可以通过截断您的网络通信来跟踪它们。任何拥有更好工具的人都可以编辑 cookie 数据。 永远不要使用 cookie 来存储密码! 如果您使用会话,则密码在服务器中,并且只有会话 ID cookie 将存储在客户端中,从而减少了安全问题。Chuck Norris 仍然可以劫持会话。

- 表现 -

如果您在浏览器中存储 5 个 cookie,其中包含 200 个字节,那么无论是 jpg 文件还是实际需要 cookie 信息的页面,每个请求都会花费大约 1 KB 的数据。因此,这直接影响您的网站对最终用户的执行速度。

如果你使用会话,服务器有这个 1 KB 的数据,而客户端在每个页面请求中发送会话 ID。您可以通过将静态文件转移到另一个无 cookie 域来变得聪明。

- 寿命 -

会话得到及时清除。因此,如果您想长时间保存某些内容,请改用 cookie。大多数网站的“记住我”功能都是这样工作的(不过,它不存储密码。只是会话信息 - 不要与会话 ID 混淆)。

底线,会话和 cookie 是不同的类型。session 是相对安全的服务器端存储。经常被清除。Cookie 可以有更长的寿命,但它会影响性能(不是 CPU/RAM -- 加载时间),除非您不牢记这一点。如果有理由将 1 KB 存储为 cookie,那就太奇怪了。

永远不要相信通过$_GET/POST. 做同样的照顾$_COOKIE。并且存在会话劫持。有人可以猜出其他人的会话 ID,尽管这几乎是不可能的。所以首先在服务器端使用一些验证。

于 2012-07-02T02:09:49.357 回答