• 请不要在回答技术问题时复制粘贴 AI 生成的内容
xiaojinmaolove
V2EX  ›  程序员

?! websocket 长连接的安全性问题,求大佬指导

  •  
  •   xiaojinmaolove · Oct 25, 2019 · 5647 views
    This topic created in 2392 days ago, the information mentioned may be changed or developed.

    websocket 是 H5 一个很重要很好用的特性,但是总感觉它很不安全,在浏览器端都可以很方便的查看服务端的地址和端口,这样别人岂不是可以很轻松的连接进来,这样不会有问题吗?

    请问大佬们怎么保证这个连接的安全性呢?

    我本来的需求是想通过 websocket 来实现个网页通知哦

    12 replies    2019-10-25 17:49:03 +08:00
    elarity
        1
    elarity  
       Oct 25, 2019
    抛开 ssl 外,handshake 的时候不是一般都校验一下类似于 token 这类的吗?
    des
        2
    des  
       Oct 25, 2019 via Android
    http 不一样可以“随便连”,所以 http 是怎么做的?
    sologgfun
        3
    sologgfun  
       Oct 25, 2019
    按我理解和 http 是类似的
    [1]具体业务侧还是要处理的,比如跨域之类
    [2]websocket 也有 ssl 版(wss),https 域名下的 ws 连接就必须是 wss 的
    lllllliu
        4
    lllllliu  
       Oct 25, 2019
    暴露的话你可以上 cdn。链接的时候都需要鉴权呀,就跟 http 一样,一些你不想让人看的页面和接口,鉴权一下直接拒绝就好了呀。难道你还能隐藏起来~~?
    wanguorui123
        5
    wanguorui123  
       Oct 25, 2019
    http 都不安全被中间人代理连接什么数据都可以截获。还是要 SSL 证书或对称秘钥之类的对连接进行加密
    Curtion
        6
    Curtion  
       Oct 25, 2019
    做认证啊,认证失败就不让连
    ajaxfunction
        7
    ajaxfunction  
       Oct 25, 2019
    你把 ws 看成 http 就可以了,
    需要登录或需要权限才能操作的地方,连之前先验证身份,或连上之后验证身份。
    bengcaca
        8
    bengcaca  
       Oct 25, 2019 via Android
    ws 开始就是 http,握手成功才 upgrade 为 ws。http 怎么鉴权 ws 就可以怎么鉴权。
    lc7029
        9
    lc7029  
       Oct 25, 2019
    说句题外话,长连接记得做心跳保活,不然网络设备可能会自行拆除连接而不告知双方
    lp7631010
        10
    lp7631010  
       Oct 25, 2019 via iPhone
    nginx 反代一下不就隐藏端口啦
    Austaras
        11
    Austaras  
       Oct 25, 2019
    @lc7029 websocket 自带的
    jendon
        12
    jendon  
       Oct 25, 2019
    @lc7029 socket 才需要
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1256 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 54ms · UTC 23:43 · PVG 07:43 · LAX 16:43 · JFK 19:43
    ♥ Do have faith in what you're doing.