为什么可以通过纯文本传输身份验证/会话cookie?

时间:2014-04-14 18:12:36

标签: security http cookies

我们都知道,通过纯文本传输用户名和密码是不好的,因为任何查看数据包的人都可以轻松查看,因此我们使用HTTPS来加密这些数据。

我注意到许多网站只使用HTTPS作为登录表单,并对所有其他页面使用常规HTTP(例如StackOverflow)。难道有人看不到从登录表单返回的cookie(如会话cookie)并将其注入自己的Web请求中吗?虽然它不会公开用户名和密码,但似乎他们可以通过这样做来冒充其他用户。

假设我正在窥探我朋友的互联网连接。在我的朋友在HTTPS中进行身份验证后,服务器和我的朋友开始通过HTTP进行通信并以明文形式传输cookie。什么阻止我使用这个cookie?

2 个答案:

答案 0 :(得分:2)

没有什么能阻止你使用cookie并窃取他的会话。通过HTTP发送cookie是一种非常糟糕的安全做法。事实上,Firesheep Firefox extension几年前成为头条新闻时使用了这个非常弱点。从那以后,一些网站(特别是Facebook和Gmail)只迁移到了HTTPS。其他网站也应该效仿。

答案 1 :(得分:1)

实际上并非如此。如果攻击者窃取cookie然后使用它,则称为Session Hijacking

StackOverflow are aware of this problem并且一直在寻找到处都是HTTPS(网站范围内)。

为防止cookie通过不安全的连接发送,应设置Secure flag。这将阻止浏览器通过HTTP连接发送它,即使攻击者试图让它从自己的站点泄漏(很容易做到,攻击者可能只在自己的站点中包含<img src="http://www.example.com/anything.jpg" />导致不安全的cookie通过HTTP发送并执行MITM attack)。