簡體   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