当前位置: 首页 > news >正文

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

为什么80%的码农都做不了架构师?>>>   hot3.png

HTTPS证书申请

微博账户被盗赞或被动加关注的问题,可能很多用户都遇到过,每天都会发现自己的账户莫名其妙关注或点赞了几十个营销号、广告号、明星号的微博,挨个取消被盗的关注和赞,竟然成了日常最主要的微博操作,很多用户对此感到不厌其烦。

原因分析

从技术上看,能够给微博账号加关注或盗赞的途径通常有: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证书(www.wosign.com)。

转载于:https://my.oschina.net/wossl/blog/3012823

相关文章:

  • Linux或UNIX系统配置检查
  • NutzWk 5.1.5 发布,Java 微服务分布式开发框架
  • 17-成员访问权限
  • 警报:线上事故之CountDownLatch的威力
  • Linux基金会施行安全关键系统打造共享工具、流程
  • 基于Python的ModbusTCP客户端实现
  • 人月神话读书笔记(3)
  • Nacos系列:Nacos的Java SDK使用
  • matlab-线性代数 矩阵转置(共轭、非共轭)
  • 力扣(LeetCode)22
  • 罗辑思维在全链路压测方面的实践和工作笔记
  • crond定时任务
  • JS正则表达式精简教程(JavaScript RegExp 对象)
  • Python爬虫入门教程 40-100 博客园Python相关40W博客抓取 scrapy
  • Druid 在有赞的实践
  • C++入门教程(10):for 语句
  • CentOS 7 修改主机名
  • Create React App 使用
  • emacs初体验
  • Go 语言编译器的 //go: 详解
  • LeetCode541. Reverse String II -- 按步长反转字符串
  • Linux快速配置 VIM 实现语法高亮 补全 缩进等功能
  • rabbitmq延迟消息示例
  • seaborn 安装成功 + ImportError: DLL load failed: 找不到指定的模块 问题解决
  • spring security oauth2 password授权模式
  • Vue.js 移动端适配之 vw 解决方案
  • 工作中总结前端开发流程--vue项目
  • 互联网大裁员:Java程序员失工作,焉知不能进ali?
  • 猫头鹰的深夜翻译:Java 2D Graphics, 简单的仿射变换
  • 使用Tinker来调试Laravel应用程序的数据以及使用Tinker一些总结
  • 微信小程序:实现悬浮返回和分享按钮
  • 《TCP IP 详解卷1:协议》阅读笔记 - 第六章
  • Spark2.4.0源码分析之WorldCount 默认shuffling并行度为200(九) ...
  • 教程:使用iPhone相机和openCV来完成3D重建(第一部分) ...
  • 如何在 Intellij IDEA 更高效地将应用部署到容器服务 Kubernetes ...
  • ​软考-高级-系统架构设计师教程(清华第2版)【第15章 面向服务架构设计理论与实践(P527~554)-思维导图】​
  • ​软考-高级-信息系统项目管理师教程 第四版【第14章-项目沟通管理-思维导图】​
  • ​中南建设2022年半年报“韧”字当头,经营性现金流持续为正​
  • #Spring-boot高级
  • (第二周)效能测试
  • (动手学习深度学习)第13章 计算机视觉---微调
  • (动态规划)5. 最长回文子串 java解决
  • (六)vue-router+UI组件库
  • (强烈推荐)移动端音视频从零到上手(上)
  • (原创)攻击方式学习之(4) - 拒绝服务(DOS/DDOS/DRDOS)
  • (转) Face-Resources
  • (转)详解PHP处理密码的几种方式
  • (最完美)小米手机6X的Usb调试模式在哪里打开的流程
  • *上位机的定义
  • ... fatal error LINK1120:1个无法解析的外部命令 的解决办法
  • .bat批处理出现中文乱码的情况
  • .mysql secret在哪_MYSQL基本操作(上)
  • .net 4.0 A potentially dangerous Request.Form value was detected from the client 的解决方案
  • .NET CF命令行调试器MDbg入门(四) Attaching to Processes
  • .NET CORE Aws S3 使用