日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

websocket网络层详解_【技术分享】WebSocket漏洞与防护详解

發布時間:2023/12/19 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 websocket网络层详解_【技术分享】WebSocket漏洞与防护详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2017-05-02 14:15:48 閱讀:1889次

預估稿費:120RMB

投稿方式:發送郵件至linwei#360.cn,或登陸網頁版在線投稿

socket簡介

一個socket是一次網絡通信中的一個端點。socket總是分為兩部分:一個IP地址和一個端口。

例如:當您訪問www.securelayer7.net時,你的計算機和網站的服務器正在使用socket(端點)進行通信。網站的端點將是:www.securelayer7.net:80,你的計算機的端點將是你的IP地址,后跟任何隨機端口號,如192.168.0.111:6574

關于WebSocket

傳統上,HTTP活動是由客戶端請求資源而服務器來提供服務。服務器不能自己與客戶端通話。但這個限制已經被新技術WebSocket消除了。

WebSockets提供持久連接,也稱為客戶端和服務器之間的全雙工連接,雙方可以隨時使用該連接開始發送數據。

它是如何工作的?

客戶端,如瀏覽器,加載具有WebSocket功能的網頁。

頁面的源代碼負責創建WebSocket連接。

該腳本通過WebSocket握手建立WebSocket連接。此過程從客戶端向服務器發送常規HTTP請求開始。此請求中包含upgrade請求頭,通知服務器客戶端希望建立WebSocket連接。

請求如下所示:

值得注意的是,WebSocket使用ws作為訪問方案而不是http。所以,上面的請求訪問了:ws://127.0.0.1:9000 / websocket

如果服務器支持WebSocket(針對上述請求),則它將在其響應中使用upgrade請求頭進行回復。

響應如下所示:

在這個階段,協議將從HTTP切換到WS。并且在瀏覽器和服務器之間建立全雙工連接。

在這個例子中,我們有一個WebSocket功能,它回傳客戶端發送的所有單詞。例如:如果用戶鍵入單詞“Hiii”,那么服務器也會用“Hiii”來回復。

請求:

響應:

用戶界面:

WebSockets的安全隱患

A.跨站WebSocket劫持

注意下面的請求。Origin頭有不同的來源127.0.0.1:5555。該請求是使用受害者的cookie發送到WebSocket服務器。這意味著可以使用WebSocket發送類似于CSRF的攻擊。

但是,這種攻擊不止像CSRF將POST數據發送到WebSocket服務器,它還會讀取服務器響應。這是因為默認情況下WebSocket服務器不檢查“Origin”頭,它只是使用cookies檢查經過身份驗證的用戶會話,并將響應發送回請求的“Origin”。

因此,在上述情況下,攻擊者也可以讀取響應,從而代表受害者控制雙向通信。

防護:

檢查請求的“Origin”頭。既然,這個標題是為了防止跨源攻擊。如果“Origin”不被信任,那么只需拒絕該請求。例如:如果您的網站的域名為www.example.com,請檢查請求是否源自該來源,如果是,則處理該請求。如果否,則拒絕。

另一個解決方案是使用基于會話的個人隨機令牌(就像CSRF-Tokens)。生成服務器端,并將它們放在客戶端的隱藏字段中。并要求驗證。

B.網絡敏感信息泄露

就像HTTP是純文本協議一樣,WebSockets協議也稱為純文本。這導致攻擊者捕獲和修改網絡上的流量。

防護:

建議使用加密(TLS)WebSockets連接。它的URI方案是wss://。默認端口為443。

如下演示,請求訪問ws://127.0.0.1:900/websocket/。如果它是一個安全連接,那么請求將訪問wss://127.0.0.1:900/websocket/。

C.拒絕服務

默認情況下,WebSockets允許無限制的連接導致DOS。以下是無限次連接到WebSocket服務器的小腳本。

執行此腳本后,讓我們看看WebSocket服務器的日志:

我們可以看到,幾秒鐘內就已經完成了475個連接。這將耗盡服務器資源,最終導致DOS攻擊。

防護:

使用基于IP的速率限制將有助于解決這個問題。

速率限制應允許5-10連接自由,即不進行任何安全檢查。但在10個連接之后,如果同一個IP嘗試連接,那么應該向用戶顯示驗證碼,以確保自動化工具不會產生惡意請求,同時合法用戶不會被拒絕服務。

結論

WebSockets非常適合全雙工通信,有許多聊天應用程序和社交網站使用。實現WebSockets使應用程序更具可用性和吸引力。但就像任何其他技術一樣,也需要在考慮安全性的情況下使用。

參考文獻

總結

以上是生活随笔為你收集整理的websocket网络层详解_【技术分享】WebSocket漏洞与防护详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。