websocket 是 H5 一个很重要很好用的特性,但是总感觉它很不安全,在浏览器端都可以很方便的查看服务端的地址和端口,这样别人岂不是可以很轻松的连接进来,这样不会有问题吗?
请问大佬们怎么保证这个连接的安全性呢?
我本来的需求是想通过 websocket 来实现个网页通知哦
1
elarity 2019-10-25 09:54:32 +08:00
抛开 ssl 外,handshake 的时候不是一般都校验一下类似于 token 这类的吗?
|
2
des 2019-10-25 09:56:45 +08:00 via Android
http 不一样可以“随便连”,所以 http 是怎么做的?
|
3
sologgfun 2019-10-25 09:58:52 +08:00
按我理解和 http 是类似的
[1]具体业务侧还是要处理的,比如跨域之类 [2]websocket 也有 ssl 版(wss),https 域名下的 ws 连接就必须是 wss 的 |
4
lllllliu 2019-10-25 10:12:53 +08:00
暴露的话你可以上 cdn。链接的时候都需要鉴权呀,就跟 http 一样,一些你不想让人看的页面和接口,鉴权一下直接拒绝就好了呀。难道你还能隐藏起来~~?
|
5
wanguorui123 2019-10-25 11:19:09 +08:00
http 都不安全被中间人代理连接什么数据都可以截获。还是要 SSL 证书或对称秘钥之类的对连接进行加密
|
6
Curtion 2019-10-25 11:41:53 +08:00
做认证啊,认证失败就不让连
|
7
ajaxfunction 2019-10-25 11:57:48 +08:00
你把 ws 看成 http 就可以了,
需要登录或需要权限才能操作的地方,连之前先验证身份,或连上之后验证身份。 |
8
bengcaca 2019-10-25 12:21:30 +08:00 via Android
ws 开始就是 http,握手成功才 upgrade 为 ws。http 怎么鉴权 ws 就可以怎么鉴权。
|
9
lc7029 2019-10-25 12:34:48 +08:00
说句题外话,长连接记得做心跳保活,不然网络设备可能会自行拆除连接而不告知双方
|
10
lp7631010 2019-10-25 12:42:03 +08:00 via iPhone
nginx 反代一下不就隐藏端口啦
|