cookie安全性问题

什么是cookie

指某些网站为了辨别用户身份、进行session跟踪而存储在用户本地终端上的数据(通常经过加密)。(注:此定义来自百度百科)

cookie对于登录的效果

排除用户手动删除浏览器cookie以及cookie未过期的情况下,用户如果在某网站登录过一次,下次访问这个网站,用户不需要输入用户名和密码就可以进入网站。

cookie的生命周期

创建cookie的时候,会给cookie指定一个值:Expire,它就是指定cookie的有效期,也就是cookie的生命周期,超出设置的这个生命周期,cookie就会被清除。如果给这个值Expire设置为0或者负值,那么这样的设置就是在关闭浏览器时,就会清除cookie,这种方式更加安全。

为什么cookie不安全

最大的原因是因为它存储在浏览器端(用户本地),一些别有用心的人能够通过浏览器截获cookie(脚本、利用工具抓取等)。

cookie不安全的表现形式

cookie欺骗

但这时就会去考虑了,既然如此,为何不加密呢?加密后就算拿到cookie不是也没有用么?关键问题就在这里了,一些别有用心的人不需要知道这个cookie的具体含义,只需要将这个cookie向服务器提交(模拟身份验证),身份验证通过之后,就可以冒充被窃取cookie对应用户来访问网站,甚至获取到用户的隐私信息,对于用户的隐私造成非常严重的危害,这种方式就叫做cookie欺骗。

cookie截获

cookie以纯文本的形式在浏览器和服务器之间传递,在web通信时极容易被非法用户截获和利用。非法用户截获cookie后,在cookie的有效时间内重新发放给服务器,那么这个非法用户就拥有了这个合法用户的所有权限。

Flash的内部代码隐患

Flash中有一个getURL()函数,Flash利用它自动打开指定的页面。那么这个就意味着,你在观看Flash动画时,在Flash的内部可以悄无声息的打开一个极小的不易发现的包含特殊操作的页面,可以是木马,可以向远端输入当前cookie或者用户信息,这是非常危险的,由于这个是Flash内部的操作,所以网站无法禁止,要想避免,尽量打开本地防火墙以及访问正规网站。

如何解决cookie安全性问题

第一步:设置cookie有效期不要过长,合适即可

第二步:设置HttpOnly属性为true

可以防止js脚本读取cookie信息,有效的防止XSS攻击。

第三步:设置复杂的cookie,加密cookie

(1)cookie的key使用uuid,随机生成;
(2)cookie的value可以使用复杂组合,比如:用户名+当前时间+cookie有效时间+随机数。
这样可以尽可能使得加密后的cookie更难解密,也是保护了cookie中的信息。

第四步:用户第一次登录时,保存ip+cookie加密后的token

每次请求,都去将当前cookie和ip组合起来加密后的token与保存的token作对比,只有完全对应才能验证成功。

第五步:session和cookie同时使用

sessionId虽然放在cookie中,但是相对的session更安全,可以将相对重要的信息存入session。

第六步:如果网站支持https,尽可能使用https

如果网站支持https,那么可以为cookie设置Secure属性为true,它的意思是,cookie只能使用https协议发送给服务器,而https比http更加安全。


 

  • 15
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
对于确保 cookie安全性,可以采取以下几种解决办法: 1. 使用 HTTPS 协议:通过使用 HTTPS 加密协议来传输请求和响应,可以防止中间人窃听和篡改的风险,确保数据的安全性。 2. 设置 Secure 标记:在设置 cookie 时,使用 Secure 标记来指示浏览器仅在通过 HTTPS 连接发送请求时才发送该 cookie。这可以防止通过非加密连接发送 cookie,提高其安全性。 3. 设置 HttpOnly 标记:在设置 cookie 时,使用 HttpOnly 标记来禁止 JavaScript 访问该 cookie。这可以防止恶意脚本通过 XSS(跨站脚本攻击)获取用户的 cookie,提高其安全性。 4. 设置 SameSite 标记:在设置 cookie 时,使用 SameSite 标记来限制 cookie 的发送范围。可以设置为 "Strict"、"Lax" 或 "None"。Strict 模式下,cookie 仅在与请求网站具有一致性的情况下发送;Lax 模式下,在某些情况下,例如从外部站点链接访问时,也可以发送;None 模式下,始终发送 cookie。这可以防止 CSRF(跨站请求伪造)攻击。 5. 对敏感信息进行加密处理:如果需要在 cookie 中存储敏感信息,应该先对其进行加密处理,确保即使 cookie 被窃取,也无法直接获取敏感信息。 6. 实施访问控制和身份验证:在服务器端实施访问控制和身份验证机制,确保只有经过验证的用户才能访问敏感功能或数据,从而降低 cookie 被利用的风险。 通过采取这些安全措施,可以增加 cookie安全性,减少潜在的攻击风险。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值