盗用cookie的目的和防盗cookie的手段

前提

虽然通过使用springsecurity我们防御了会话固定攻击,但是如果黑客等待合法用户登录系统之后,再从合法用户浏览器中拿到名字为JSESSIONID的cookie,然后放入黑客自己的浏览器的cookie中,这样以来当黑客带着盗窃来的JSESSIONID访问系统时,后端系统会根据JSESSIONID找到对应的session,就会把该次请求当成是认证通过的用户发送的请求;这样黑客就可以为所欲为了。

实践

如下图:

image.png

image.png

经过上图的实践,证明我的分析是合理的,只要能拿到认证通过的用户的cookie,黑客就可以冒充该用户访问系统中的任意资源。

盗用cookie的手段

上面的演示我是手动从合法用户使用的浏览器中拿到cookie的值,在别的浏览器中来冒用合法用户访问系统;黑客自然不能手动拿你浏览器中的cookie值,除非黑客就是你身边的人,那他就不是黑客了,是盗贼;

黑客都是靠技术手段获取别人的东西,例如:利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页中,然后自动从用户浏览器中获取cookie的值,此技术手段被称为XSS攻击;

这样以来我们的系统是不是就不安全了?就可以被黑客拿着盗用的cookie冒充合法用户随意访问了?

防盗cookie的手段

回答上段的问题:当然不是,看下图:

image.png

cookie有个HttpOnly属性,且值为true(或对号);

那什么是HttpOnly?

如果cookie中设置了HttpOnly属性,且为true,那么通过js脚本将无法读取到cookie信息,这样就能有效的防止XSS攻击,防止cookie内容被盗窃。

综上所述:只要黑客不是你身边的人,它就无法轻易拿到你浏览器中的cookie,无法冒充合法的你来访问系统,从而保证了你系统的安全性。

cookie在springsecurity中的应用

1、当未使用remember-me时,访问系统后,浏览器中只有一个名字为JSESSIONID的cookie,在该cookie的有效期内每次访问系统都会带着带cookie,服务器会根据该cookie找到对应的session;如果已经认证通过,则该session里的SecurityContext中会被放入认证通过的Authentication,SpringSecurity的过滤器就是通过查看SecurityContext中是否有Authentication来判断是否通过了认证;所以说该cookie一旦被盗用,就会被黑客拿来冒充合法用户访问系统。

2、SpringSecurity的RememberMe就是通过在浏览器端写入一个cookie值,在该cookie值的有效期内访问系统,就会带着该cookie,后端拿到cookie值后,RememberMeAuthenticationFilter过滤器会先验证cookie值的合法性,如果合法则通过cookie拿到username,再通过username拿到认证信息,并完成认证工作(和手动输入账号密码的认证工作一样);所以说该cookie一旦被盗用,也会被黑客拿来冒充合法用户访问系统。【注意:SpringSecurity的RememberMe和session没有关系】

结论

1、盗用cookie是可以冒充合法用户访问系统的;

2、我们也通过技术手段防止了cookie被盗用。

 

 

 

 

 

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值