关于cookie和session的安全疑问

OpenSir 发布于 2018/08/16 14:33
阅读 621
收藏 3

session和cookie我们用了很久了,但是我还是没有完全理解到底怎么用更安全,希望有懂的大神指点迷津。

1.如果只用session存储用户信息,不用cookie。那么session对应的是不是用户浏览器的cookie中的sessionId,那如果把得到sessionId是不是就直接可以登录了。

2.如果只用cookie存储信息,该怎么存储,如果加密存储密码和用户名有被破的风险吗。

3.有人说用cookie存储一个ssid,用ssid对应色session的key,value存储用户信息,这种方法不是和1一样吗。

4.如果cookie被盗走,通过模拟请求工具是不是一下就可以登录了,不论是1方法还是2方法。问题是黑客怎么拿到的cookie呢,如果拿不到,用户信息存在哪好像就无所谓了,明文密文也无所谓了是吗?

加载中
0
sxgkwei
sxgkwei

1,sessionId 不是存储在 cookie 中的。它是浏览器对当前访问的网站动态生成的,关闭浏览器后,下次打开再访问该网站,生成的就不一样了。而且似乎黑客并没有什么方法能获得到浏览器针对本生命周期的连接生成的 sessionId。

2,只要你网站写的没有 xss 漏洞,那么一般也认为,黑客是无法获得你这个站点写入到浏览器端的 cookie 中的相关信息的。这个从浏览器中得到 cookie,只能本网站获得本网站的。其它网站写入的,你是获得不到的,浏览器级别的保护。可以认为也没有风险,当然客户端连操作系统都被入侵了,那你还有啥办法呢?但这儿使用时,有个关键点就是,你不能只在 cookie 中写入一个用户名或者 ID,下次登录就用这个来自动登录。因为这样的话,客户端可能伪造 cookie 登录任意用户的帐号。

3,没必要,cookie 或者  session  二选一就行了,绕一圈是脱裤子放屁。

4,一般认为,无论放在哪儿,黑客都是拿不到的。但是如果在 cookie 中保存明文密码,可能不利于用户安全,因为 session 那肯定是拿不到,但 cookie 可能会因为你自己网站写的代码存在 xss 注入漏洞,而被黑客获取到,或者客户系统遭受未知攻击被获取到用户密码,这样的方案可能会提高客户的安全风险。

sxgkwei
sxgkwei
回复 @_夏 : 呵呵
_
_夏
sessionId不是存在cookie中的吗?建议层主好好了解一下
红薯官方
红薯官方
如果 sessionId 设置了 http-only 那么JavaScript将无法获取(窃取)它。
0
小浅_JJY
小浅_JJY

最简单的  你能看到cookie  所以可以用程序捕获  但是看不到session   或者说只看的到密文

session  的底层还是cookie 只不过经过了加密  所以可以称为: cookie钥匙

对于破解方面 看你用什么方式进行的加密 早期的md5已经不安全 有'彩虹表'可以暴力破解

现在有更好的算法 如: bcrypt加密算法

 

两者简单的说 cookie存储一些登录状态, 简单的信息     session存储用户信息

 

0
妹子楼顶有鸽子
妹子楼顶有鸽子

1、最简单的模式确实是获取了sessionId就可以直接在其他的地方登陆,对于浏览器和客户端而已,需要确定登陆状态的方案其实有很多的,比如验证 refer,agent 或者其他的加密字符串,只需要保证你前端传递到服务器的请求数据(包含头或者体),服务器能处理之后验证得到正确的 session就可以了。服务器端的处理方式是可以自己处理的,所以怎么验证也可以自定义。

2-3、cookie存什么东西,参考一,加密后的东西就可以了
4、cookie被盗走,通过模拟请求工具是不是一下就可以登录了。这个没有办法处理,http协议的的无状态性导致。但是可以设置使用其他的方式比如验证ip,设置cookie部分数据有效期等等。

这本身就是一个 发现问题->实现方案->在发现问题->... 的过程 。归根结底还是http的无状态导致

O
OpenSir
谢谢您的回答,那如果是自动登录的功能,是不是要再cookie中存入一个加密串,比如密码和用户名的加密串。当session有效的时候使用session作为保持自动登录的依据,当时session失效时,就用cookie中的信息对比数据库来判断是否登。这样的话有漏洞吗?
0
拾光TM
拾光TM
cookie缓存在本地浏览器,而session则缓存于服务器上面。cookie对应的是加密的账户,但是你不需要知道账号只需要这个加密后的值就可以登录,这个值是唯一的固定不变的。而session尽管也是类似于这种的加密,但是加密后的值有时间限制,过期会失效。cookie不会失效除非你删除了它
返回顶部
顶部