你的微博也被盗赞?试试HSTS强制HTTPS加密

29次阅读

共计 1308 个字符,预计需要花费 4 分钟才能阅读完成。

微博账户被盗赞或被动加关注的问题,可能很多用户都遇到过,每天都会发现自己的账户莫名其妙关注或点赞了几十个营销号、广告号、明星号的微博,挨个取消被盗的关注和赞,竟然成了日常最主要的微博操作,很多用户对此感到不厌其烦。
原因分析
从技术上看,能够给微博账号加关注或盗赞的途径通常有:1、微博账户被盗,能够被别人直接登录;2、使用第三方客户端等,可以通过微博开放平台 OAuth 拿到 access token,然后权限被滥用;3、在浏览器上使用 web 版微博登录时,cookies 被泄露了。
对此,微博安全中心也曾给过一些安全建议,比如:建议用户更换密码、升级客户端、设置登录保护、清除第三方应用权限等等,但是不少用户按照建议完成这些操作后,被盗赞的问题仍然存在。
在对不同客户端、web 端的访问情况进行分析后我们发现,虽然微博已经启用 HTTPS 加密 很多开放平台的接口也使用 HTTPS 加密,但你的浏览器书签、别人发给你的链接、旧的外链、其他应用生成的链接都可能还是 HTTP 的。当部分请求由 HTTP 连接 301 跳转到 HTTPS 时,这个 HTTP 请求仍然会带上浏览器在 http://weibo.com 域下的所有 cookie。这么一来,当用户登录后在某个特定场景访问到 HTTP 的微博链接时,仍然可能遭遇 cookie 劫持,清除授权或修改密码也没有用。
解决方法
通过给 cookie 设置 secure 或者在服务器端设置 HSTS(HTTP Strict Transport Security)也能解决这个问题,但是微博服务器端的设置是用户无法控制的,作为用户还有没有什么办法解决这个问题呢?沃通 CA(www.wosign.com)建议:比较简单的做法就是,用户在 Chrome 浏览器手动设置 HSTS 预载入列表(preload list),将微博域名加入预载入列表,强制 HTTPS 加密访问。
HSTS 代表的是 HTTPS 严格传输安全协议,它是一个网络安全政策机制,能够强迫浏览器只通过安全的 HTTPS 连接(永远不能通过 HTTP)与网站交互,这能够帮助防止协议降级攻击和 cookie 劫持。但是对于 HSTS 生效前的首次 HTTP 请求,依然无法避免被劫持,浏览器厂商们为了解决这个问题,提出了 HSTS Preload List(预载入)方案:内置一份可以定期更新的列表,对于列表中的域名,即使用户之前没有访问过,也会使用 HTTPS 协议。Chrome 运营了一个 HSTS 预载入列表,大多数主流浏览器 Firefox, Opera, Safari, IE 11 and Edge 也都有基于 Chrome 列表的预载入列表。
在 Chrome 浏览器设置 HSTS 预载入列表的方法是:

在 Chrome 里打开 chrome://net-internals/#hsts
Add domain 中增加微博主域名
Query domain 中能查询到就可以了

在 HSTS 预载入列表中加入微博主域名后,Chrome 再遇到 HTTP 的微博连接,会直接在浏览器内部就跳转到 HTTPS,确保请求从一开始就加密,保证通讯安全,防止 cookie 劫持、SSL Strip 中间人攻击,您可以通过 Chrome 开发者工具对此进行验证。关注沃通 CA 获取全球信任 SSL 证书。

正文完
 0