有什么办法能让 Cookie 被人偷了也没法用?

2018-06-09 13:19:28 +08:00
 13m
是的,就是说的 XSS 攻击,假设 XSS 目的是偷目标用户的 cookies,那么有没有什么方法可以让用户的 cookies 即使被人偷了也没法被冒用?

有没有相关的解决方案?
5010 次点击
所在节点    信息安全
18 条回复
Telegram
2018-06-09 13:26:28 +08:00
httponly 不就完了,js 偷不到
nikoo
2018-06-09 13:28:20 +08:00
@Telegram 这是防 Cookie 被偷吧?但如何让 Cookie 被偷了也没用呢,我也很想知道
KomeijiSatori
2018-06-09 13:28:30 +08:00
httponly
ebony0319
2018-06-09 13:28:51 +08:00
@Telegram 学习了。
letitbesqzr
2018-06-09 13:45:23 +08:00
首先肯定是 httponly 防止 js 偷走 cookie,上 https 防网络层面偷走 cookie。如果是特别敏感的场景应该验证 cookie 产生的 ip 和当前 ip 是否一样,或者 useragent,如果不一样的话 要求一次二次验证,或者直接重新登陆。
Livid
2018-06-09 13:47:00 +08:00
把 IP 和时间值也作为 cookie 的一部分。
13m
2018-06-09 14:00:56 +08:00
@letitbesqzr 谢谢,受教了!

@Livid 把时间值作为 cookie 的一部分如何操作和验证?
gDD
2018-06-09 14:47:59 +08:00
@13m 可以通过写代码来完成这个操作;还可以写测试用例或者手工测试来验证。
gDD
2018-06-09 14:51:32 +08:00
抱歉我审题不仔细了,以为是无脑问的。把时间值作为 Cookie 的生成要素之一好想不太可行,如果要定期让 Cookie 失效,那正常用户的体验也会有所影响。
bukip
2018-06-09 14:56:34 +08:00
@gDD 很多都是把时间作为 cookie 的验证要素,如果是正常用户 cookie 正常更新就完了,对正常用户的体验一般不会有影响。
nikoo
2018-06-09 15:02:16 +08:00
@bukip "把时间作为 cookie 的验证要素" 这个时间指的是什么时间? cookie 的过期时间吗?
Telegram
2018-06-09 15:05:28 +08:00
@Livid #6 ip 我觉得不妥,我手机访问,换个基站 ip 可能就变了
lucasmi2002
2018-06-09 15:12:19 +08:00
两阶段认证
crab
2018-06-09 15:28:27 +08:00
不考虑 IP 重复,加个 IP 校验就可以了,起码这个模拟不来。
但建议还是 httponly 从上层防止。
xmdhs
2018-06-09 15:34:28 +08:00
@Telegram 手机似乎换基站 ip 不变的

之前出了省 ip 好像还是原本的
xuboying
2018-06-09 15:41:19 +08:00
基站不负责 ip 分配,一般不变。切到 wifi 倒是可能变化 ip。如果是运营商 wifi 可能不变。
Foolt
2018-06-09 18:40:03 +08:00
如果被 XSS 攻击了,做不到 Cookie 被偷了也没办法冒用,除非你验证 IP。

被 XSS 攻击并拿到 Cookie 说明包括 UA 在内的客户端信息完全被掌握了,这些都可以在构造 HTTP 请求的时候自定义,你服务器是验证不了真假的。
iyangyuan
2018-06-10 19:49:02 +08:00
我也在思考这个问题

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/461714

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX