PHP-自己PHP写的站,请问COOKIES保存用户的什么数据,是否用加密呢

发布于 2017-09-21 05:41:18 字数 95 浏览 1337 评论 2

一直都在用SESSION+MYSQL来保存用户登录的状态,今天看到一些关于COOKIES的设计,请问什么时候用COOKIES,如果使用一般保存用户的什么数据,用不用加密什么的?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

灵芸 2017-10-09 07:20:06

其实你在用session的时候也在用cookies,cookies里会有一个到session的索引。

我认为基本原则是:不保存大量信息,尽量不保存敏感信息,敏感信息要进行加密。具体点就是只保存足够跟踪、确定用户的信息。

当然,具体要看你的需求。例如,如果你要减少服务器端的保存的状态,不在服务器记录用户是否登录,那就必须把登录信息(用户名、密码)加密之后放到cookie,client-sessionsclientsession都是干这个的。

最后举个例子,来自我的一个项目:用户登录的时候,系统返回非敏感的用户信息和一个新生成的token,非敏感的用户信息放在浏览器的localStorage,而token和用户ID放到cookies,同时在服务器端用redis记录下来。这样在后续的访问中,通过token和用户ID就能确定用户是否登录。

瑾兮 2017-10-08 16:34:03

1、session的实现机理:在客户端保存一个hash,通过这个hash来告诉服务器:接收的post或者get对应的是某个session。而session的具体信息存在服务器的内存当中。
如何验证,你可以产看post或者get发送的包,你会发现cookie一项。
2、cookie的实现机理:cookie是个罐子,什么都可以往里面装。他将你要装的东西都保存在浏览器的内存里面。

====================区别================================================
显然,session保存信息是依赖于cookie的——通过维持一个夸网络的hash表实现。
====================严肃一点,我们讨论的是××==============================
cookie的使用丰富多彩,除了一些历史记录的保存以外,主要用于多服务器情况下的session。
举例来说:淘宝是一个大规模的服务器集群——对于这个服务器集群来说,如何判断某人的访问是某人的访问?
就是说,在某一个服务器上创建的session如何在另外一个服务器上识别?——这种情况很常见:如果你在淘宝上买了一个东西,这个东西的信息处理很可能不只是在一台服务器上。这种情况下如何传递session?

在集群规模不算太大的情况下,这个问题一般可以通过memcached解决。但是对于淘宝这么大的规模,很可能就只好通过cookie解决了:
将原本储存在session中的信息储存在浏览器中——当然,关键的信息是要加密的。每次post或者get都会发送这些cookie。在服务器端,则根据cookie建立session。

当然,在这种情况下,一般服务器端的session都是他们自己重新写过的Session实现。

--------------------------好评请点赞~---------谢谢--------------------

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文