繁体   English   中英

Web套接字安全URL加密

[英]Web Socket Secure URL Encryption

使用wss://时,URL本身是否也被加密? 例如,假设您有一个简单的Sinatra Web应用程序,它接受Web套接字连接:

class App < Sinatra::Base

  get "/ws/:api_key/room/:id" do |api_key, id|
    user = User.find_by(api_key: api_key)
    room = Room.find(id)

    if RoomAuthenticator.new(room).authorized?(user)
      request.websocket do |ws|
        ws.onopen { publish(room, "#{user.name} connected.") }
      end
    else
      401
    end
  end
end

然后从客户端/浏览器,在JavaScript中:

new WebSocket("wss://" + window.location.host + "/ws/" + user.api_key + "/room/" + room.id);

URL中的user.api_key是加密的还是容易受到攻击?

是的,URL将被加密。 安全Web套接字使用传输层安全性(就像HTTPS一样)来通过安全连接隧道传输所有数据。 请参阅RFC 6455的第4节

如果/ secure /为true,则客户端必须在打开连接之后和发送握手数据之前通过连接执行TLS握手。 [...]此通道上的所有进一步通信必须通过加密隧道。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM