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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

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

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

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

預(yù)估稿費(fèi):120RMB

投稿方式:發(fā)送郵件至linwei#360.cn,或登陸網(wǎng)頁(yè)版在線投稿

socket簡(jiǎn)介

一個(gè)socket是一次網(wǎng)絡(luò)通信中的一個(gè)端點(diǎn)。socket總是分為兩部分:一個(gè)IP地址和一個(gè)端口。

例如:當(dāng)您訪問(wèn)www.securelayer7.net時(shí),你的計(jì)算機(jī)和網(wǎng)站的服務(wù)器正在使用socket(端點(diǎn))進(jìn)行通信。網(wǎng)站的端點(diǎn)將是:www.securelayer7.net:80,你的計(jì)算機(jī)的端點(diǎn)將是你的IP地址,后跟任何隨機(jī)端口號(hào),如192.168.0.111:6574

關(guān)于WebSocket

傳統(tǒng)上,HTTP活動(dòng)是由客戶端請(qǐng)求資源而服務(wù)器來(lái)提供服務(wù)。服務(wù)器不能自己與客戶端通話。但這個(gè)限制已經(jīng)被新技術(shù)WebSocket消除了。

WebSockets提供持久連接,也稱為客戶端和服務(wù)器之間的全雙工連接,雙方可以隨時(shí)使用該連接開(kāi)始發(fā)送數(shù)據(jù)。

它是如何工作的?

客戶端,如瀏覽器,加載具有WebSocket功能的網(wǎng)頁(yè)。

頁(yè)面的源代碼負(fù)責(zé)創(chuàng)建WebSocket連接。

該腳本通過(guò)WebSocket握手建立WebSocket連接。此過(guò)程從客戶端向服務(wù)器發(fā)送常規(guī)HTTP請(qǐng)求開(kāi)始。此請(qǐng)求中包含upgrade請(qǐng)求頭,通知服務(wù)器客戶端希望建立WebSocket連接。

請(qǐng)求如下所示:

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

如果服務(wù)器支持WebSocket(針對(duì)上述請(qǐng)求),則它將在其響應(yīng)中使用upgrade請(qǐng)求頭進(jìn)行回復(fù)。

響應(yīng)如下所示:

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

在這個(gè)例子中,我們有一個(gè)WebSocket功能,它回傳客戶端發(fā)送的所有單詞。例如:如果用戶鍵入單詞“Hiii”,那么服務(wù)器也會(huì)用“Hiii”來(lái)回復(fù)。

請(qǐng)求:

響應(yīng):

用戶界面:

WebSockets的安全隱患

A.跨站W(wǎng)ebSocket劫持

注意下面的請(qǐng)求。Origin頭有不同的來(lái)源127.0.0.1:5555。該請(qǐng)求是使用受害者的cookie發(fā)送到WebSocket服務(wù)器。這意味著可以使用WebSocket發(fā)送類似于CSRF的攻擊。

但是,這種攻擊不止像CSRF將POST數(shù)據(jù)發(fā)送到WebSocket服務(wù)器,它還會(huì)讀取服務(wù)器響應(yīng)。這是因?yàn)槟J(rèn)情況下WebSocket服務(wù)器不檢查“Origin”頭,它只是使用cookies檢查經(jīng)過(guò)身份驗(yàn)證的用戶會(huì)話,并將響應(yīng)發(fā)送回請(qǐng)求的“Origin”。

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

防護(hù):

檢查請(qǐng)求的“Origin”頭。既然,這個(gè)標(biāo)題是為了防止跨源攻擊。如果“Origin”不被信任,那么只需拒絕該請(qǐng)求。例如:如果您的網(wǎng)站的域名為www.example.com,請(qǐng)檢查請(qǐng)求是否源自該來(lái)源,如果是,則處理該請(qǐng)求。如果否,則拒絕。

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

B.網(wǎng)絡(luò)敏感信息泄露

就像HTTP是純文本協(xié)議一樣,WebSockets協(xié)議也稱為純文本。這導(dǎo)致攻擊者捕獲和修改網(wǎng)絡(luò)上的流量。

防護(hù):

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

如下演示,請(qǐng)求訪問(wèn)ws://127.0.0.1:900/websocket/。如果它是一個(gè)安全連接,那么請(qǐng)求將訪問(wèn)wss://127.0.0.1:900/websocket/。

C.拒絕服務(wù)

默認(rèn)情況下,WebSockets允許無(wú)限制的連接導(dǎo)致DOS。以下是無(wú)限次連接到WebSocket服務(wù)器的小腳本。

執(zhí)行此腳本后,讓我們看看WebSocket服務(wù)器的日志:

我們可以看到,幾秒鐘內(nèi)就已經(jīng)完成了475個(gè)連接。這將耗盡服務(wù)器資源,最終導(dǎo)致DOS攻擊。

防護(hù):

使用基于IP的速率限制將有助于解決這個(gè)問(wèn)題。

速率限制應(yīng)允許5-10連接自由,即不進(jìn)行任何安全檢查。但在10個(gè)連接之后,如果同一個(gè)IP嘗試連接,那么應(yīng)該向用戶顯示驗(yàn)證碼,以確保自動(dòng)化工具不會(huì)產(chǎn)生惡意請(qǐng)求,同時(shí)合法用戶不會(huì)被拒絕服務(wù)。

結(jié)論

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

參考文獻(xiàn)

總結(jié)

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

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。