PHP-自己PHP写的站,请问COOKIES保存用户的什么数据,是否用加密呢
一直都在用SESSION+MYSQL来保存用户登录的状态,今天看到一些关于COOKIES的设计,请问什么时候用COOKIES,如果使用一般保存用户的什么数据,用不用加密什么的?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
一直都在用SESSION+MYSQL来保存用户登录的状态,今天看到一些关于COOKIES的设计,请问什么时候用COOKIES,如果使用一般保存用户的什么数据,用不用加密什么的?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(2)
其实你在用session的时候也在用cookies,cookies里会有一个到session的索引。
我认为基本原则是:不保存大量信息,尽量不保存敏感信息,敏感信息要进行加密。具体点就是只保存足够跟踪、确定用户的信息。
当然,具体要看你的需求。例如,如果你要减少服务器端的保存的状态,不在服务器记录用户是否登录,那就必须把登录信息(用户名、密码)加密之后放到cookie,client-sessions和clientsession都是干这个的。
最后举个例子,来自我的一个项目:用户登录的时候,系统返回非敏感的用户信息和一个新生成的token,非敏感的用户信息放在浏览器的localStorage,而token和用户ID放到cookies,同时在服务器端用redis记录下来。这样在后续的访问中,通过token和用户ID就能确定用户是否登录。
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实现。
--------------------------好评请点赞~---------谢谢--------------------