[英]$_SESSION v. $_COOKIE
几周前,我在创建登录页面时了解了$_SESSION
。 我可以成功登录并将其与变量一起使用。 目前我正在尝试了解$_SESSION
和$_COOKIE
。 如果我错了请纠正我,我可以在登录和移动页面时使用$_SESSION
。 使用$_COOKIE
,它用于记住我上次访问和偏好的时间。
涉及cookie的另一个问题是,当网站使用广告(例如:Google AdSense)时,他们会使用Cookie来跟踪访问者点击广告的时间,对吗?
我可以同时使用( $_SESSION
和$_COOKIE
)? 我在某处读到你可以将session_id
存储为cookie的值。
另外,我读到了安全性,让我发现这一点: 当用户登录时,我需要在php会话中存储什么? 。 当用户回到网站时,是否使用session_regenerate_id
?
这个: 如何使用涉及uniqid
php存储cookie 。
对于那些想要了解登录的人,我使用电子邮件和密码。 这样,用户就可以更改其用户名。
我期待从任何想要分享他们知识的人那里学到更多关于这两个的知识。 如果我问了太多问题,你可以回答你有更多经验的问题。
如果您需要更多信息,请询问,因为我可能忘记包含一些内容。
谢谢。
简单来说, $_SESSION
和$_COOKIE
是不同的。 两者都是php全局,但使用cookie时没有语言限制。 $_SESSION
就是将数据存储在服务器中,同时将会话ID存储为cookie。 $_COOKIE
是浏览器发送给服务器的cookie。 这是主要的区别。 如果客户端浏览器禁用了cookie,则会话不起作用。
- 安全 -
如果您检查了浏览器发送的请求标头,您会注意到每个请求都包含cookie信息。 可以通过剪切网络通信来跟踪它们。 拥有更好工具的任何人都可以编辑cookie数据。 永远不要使用cookie来存储密码! 如果您使用会话,则密码位于服务器中,并且只有会话ID cookie将存储在客户端中, 从而减少了安全问题。 查克诺里斯仍然可以劫持一个会议。
- 表现 -
如果您在浏览器中存储5个cookie,其中包含200个字节,那么无论是jpg文件还是实际需要cookie信息的页面, 每个请求的数据大约需要1 KB。 因此,这会直接影响您的网站对最终用户的执行速度。
如果使用会话,则服务器具有此1 KB数据,而客户端在每个页面请求中发送会话ID。 通过将静态文件转移到另一个无cookie的域,您可以很聪明。
- 一生 -
会议及时得到批准。 因此,如果您想长时间保存某些内容,请使用Cookie。 “记住我”大多数网站的功能都是这样工作的(但是,它不存储密码。只是会话信息 - 不要与会话ID混淆)。
底线,会话和cookie是不同的类型。 会话是相对安全的和服务器端存储。 经常清理。 Cookie可以有更长的使用寿命,但它会影响性能(不是CPU / RAM - 加载时间),除非你不记得这一点。 如果有理由将1 KB存储为cookie,那就太奇怪了。
永远不要相信通过$_GET/POST
来的用户输入。 也为$_COOKIE
做同样的照顾。 还有会话劫持。 有人可以猜到其他人的会话ID,尽管这几乎是不可能的。 因此,首先在服务器端使用一些验证。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.