当前位置:首页 > 短网址资讯 > 正文内容

WebSocket 的鉴权授权方案

www.ft12.com8年前 (2017-08-05)短网址资讯2983

引子

WebSocket 是个好东西,为我们提供了便捷且实时的通讯能力。然而,对于 WebSocket 客户端的鉴权,协议的 RFC 是这么说的:

This protocol doesn’t prescribe any particular way that servers can
authenticate clients during the WebSocket handshake. The WebSocket
server can use any client authentication mechanism available to a
generic HTTP server, such as cookies, HTTP authentication, or TLS
authentication.

也就是说,鉴权这个事,得自己动手

协议原理

WebSocket 是独立的、创建在 TCP 上的协议。

为了创建Websocket连接,需要通过浏览器发出请求,之后服务器进行回应,这个过程通常称为“握手”。

实现步骤:

1. 发起请求的浏览器端,发出协商报文:

2. 服务器端响应101状态码(即切换到socket通讯方式),其报文:

3. 协议切换完成,双方使用Socket通讯

直观的协商及通讯过程:

websocket-lifecycle

方案

通过对协议实现的解读可知:在 HTTP 切换到 Socket 之前,没有什么好的机会进行鉴权,因为在这个时间节点,报文(或者说请求的Headers)必须遵守协议规范。但这不妨碍我们在协议切换完成后,进行鉴权授权:

鉴权

  1. 在连接建立时,检查连接的HTTP请求头信息(比如cookies中关于用户的身份信息)

  2. 在每次接收到消息时,检查连接是否已授权过,及授权是否过期

  3. 以上两点,只要答案为否,则服务端主动关闭socket连接

授权

服务端在连接建立时,颁发一个ticket给peer端,这个ticket可以包含但不限于:

  • peer端的uniqueId(可以是ip,userid,deviceid…任一种具备唯一性的键)

  • 过期时间的timestamp

  • token:由以上信息生成的哈希值,最好能加盐

安全性的补充说明

有朋友问:这一套机制如何防范重放攻击,私以为可以从以下几点出发:

  • 可以用这里提到的expires,保证过期,如果你愿意,甚至可以每次下发消息时都发送一个新的Ticket,只要上传消息对不上这个Ticket,就断开,这样非Original Peer是没法重放的

  • 可以结合redis,实现 ratelimit,防止高频刷接口,这个可以参考 express-rate-limit,原理很简单,不展开

  • 为防止中间人,最好使用wss(TLS)

代码实现

WebSocket连接处理,基于 node.js 的 ws 实现:

授权用到的 Ticket(这里存储用到的是knex + postgreSQL):

utils 的哈希方法:

扫描二维码推送至手机访问。

版权声明:本文由短链接发布,如需转载请注明出处。

本文链接:https://www.ft12.com/article_382.html

标签: WebSocket鉴权
分享给朋友:

相关文章

哪些设置会导致短网址的 MySQL 慢查询

哪些设置会导致短网址的 MySQL 慢查询

作者:短链接团队:短网址服务提供商前言无论是开发同学还是DBA,想必大家都遇到慢查询(select,update,insert,delete 语句慢),影响短网址服务的稳定性。这里说的慢,有两个含义一是比正常的慢,有可能正常执行时间是10m...

短网址网站对每条短链接安全性的检测方法

短网址站,顾名思义就是把长网址缩短成很短的短链接并提供跳转服务。当用户访问短链接时,短网址站会检索数据库中此条短链接对应的真实网址,并快速跳转到真实的长网址。世界本来就是一片祥和,但是总有一些不法分子利用短链接来隐藏真实网址,然后群发恶意网...

短网址程序YOURLS的安装和配置

YOURLS的装置和装备YOURLS 是 Your Own URL Shortener 的简写,YOURLS 是一个开源的 PHP短网址程序,让你能够运转自个的 URL 缩短服务。YOURLS 功用非常强壮,你能够用来做跳转衔接管理和计算,...

FT12短网址:中国能成为第四次工业革命的引领者吗?

FT12短网址:中国能成为第四次工业革命的引领者吗?

[ FT12短网址 ] ①我国在无人机、互联网、云核算、生物医药、共享经济等方面有很多抢先国际的科技效果;②人工智能到2035年有望拉动我国经济年增加率显着进步,推进我国劳动出产率进步27%;③我国必须在立异中寻觅未来,...

FT12短网址解读阿里Q4财报:将增加短网址投入成本

阿里巴巴周五收涨,盘中股价创历史记录。公司周四发布最新财报,财报显示,阿里巴巴集团第四财季收入为385.79亿元人民币,同比增加60%;阿里中心电商事务收入同比增加47%,运营赢利达165亿元;包括阿里云以及数字媒体和文娱事务等新式事务收入...

关于短网址api接口增加apikey认证的说明

关于短网址api接口增加apikey认证的说明

    FT12短网址上线7年了,感谢用户7年来的支持。我们也一直致力于提供免费、快速、稳定的网址缩短服务。7年来我们的服务在线率达到了99.99%。但是,近期发现很多恶意用户或者竞争对手,滥用api接口,生成了大量无用...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。