请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

Session相对于Cookie更安全,安全在哪里?

Session的一种实现方式是基于cookie的,这样其实和使用cookie并没有本制的区别,服务端去鉴别查找session使用的同样是客户端请求头中的session id,session相对安全在哪里?同样是可以伪造的吧?

正在回答

1回答

翔仔 2019-03-23 00:46:24

要搞清楚这个问题首先需要真正弄清楚cookie和session。

cookie分为二种

1,以文件方式存在硬盘空间上的长期性的cookie

2,停留在浏览器所占内存中的临时性的cookie

浏览网站时,你会经常发现网站登录的地方,会有提示,问你是不是要记住自己的登录状态,像这种情况,登录时填写的一些信息会被以文件的方式存放在客户端的硬盘上。

当用户登录后,session会在cookie端产生一个session_id,这个session_id是存于浏览器所占用的内存当中。当你关闭浏览器后,session_id也要消失了。同学提到的session机制就是借助于cookie机制来达到保存标识的目的,这样就可以解决HTTP协议无状态的缺陷。

session是一种服务器端的信息管理机制,它把这些文件信息以文件的形势存放在服务器的硬盘空间上,这种情况是默认的。当客户端向服务器发出请求时,要求服务器端产生一个session时,服务器端会先检查一下,客户端的cookie里面有没有session_id,是否已经过期。如果有这样的session_id的话,服务器端会根据cookie里的session_id把服务器的session检索出来。如果没有这样的session_id的话,服务器端会重新建立一个。

接下来来讲讲安全性,session的sessionID是放在cookie里,要想攻破session的话,第一要攻破cookie。攻破cookie后,想要得到 sessionID,而sessionID是要有人登录,或者启动session_start才会有,你不知道什么时候会有人登录。第二,sessionID是加密的,第二次session_start的时候,前一次的sessionID就没有用了,session过期时sessionid也会失效,想在短时间内功破加了密的 sessionID很难。session是针对某一次通信而言,会话结束session也就随着消失了,而真正的cookie存在于客户端硬盘上的一个文本文件。


3 回复 有任何疑惑可以回复我~
  • 提问者 lizhi_duan #1
    非常感谢!
    回复 有任何疑惑可以回复我~ 2019-03-23 12:01:58
  • 墨7228 #2
    非常感谢!老师还是一如既往的强大!
    回复 有任何疑惑可以回复我~ 2019-07-28 13:33:25
  • 翔仔 回复 墨7228 #3
    同学也可以的,加油:)
    回复 有任何疑惑可以回复我~ 2019-07-28 22:21:14
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信