Http頭Hostname攻擊漏洞?
其實HTTP請求頭中的HostName漏洞攻擊很早就存在了,但無論是運維還是開發人員對這個漏洞了解不深,也不夠重視,一般情況下,此漏洞危害并不大。
HTTP頭信息HostName漏洞分析在說這個漏洞之前我們先簡單說下HTTP協議,我們在發起HTTP請求時,其請求報文由下面幾分部組成:
請求行
請求頭(Header)
空行
請求體(請求數據)
其中,請求頭的作用就是通知服務器有關客戶端請求的信息,它是由關鍵字/值對組成的,常用請求頭參數有:
User-Agent:標記請求的瀏覽器類型
Accept:告訴服務器端客戶端可識別的文件類型有哪些
Host:告訴服務器端客戶端請求的主機名是什么
一個最簡單的請求報文可能是這樣的:
GET / HTTP/1.1Host: http://www.wukong.com請求頭中的Host本意告訴服務器端要訪問的是哪個域名(因為一臺服務器上可能會建立多個站點、使用多個域名),但服務器端的代碼有時也需要獲取這個Host(比如拼裝URL),在這種情況下就存在漏洞了,因為我們不能保證客戶端發送過來的Host頭信息就一定是合法的。
HostName漏洞防御方案HostName漏洞防御是比較容易的,主要有兩種方法:
1、程序代碼中若必須獲取HostName請求頭,那一定要做必要的數據檢查,防止拼接字符串輸出后產生XSS等。
2、Web站點顯式綁定域名,避免空主機頭的存在
當多個站點部署在同一臺服務器上時,因為服務器IP可能只有一個,而網站端口也都是80,那服務器怎么知道你訪問的是哪一個網站呢?靠的就是請求頭中的HostName,所以我們將站點顯式綁定域名,防止通過IP的方式可以訪問某個網站,這樣偽造的HostName是找不到對應站點的,也就不存在漏洞了。
以上就是我的觀點,對于這個問題大家是怎么看待的呢?歡迎在下方評論區交流 ~ 我是科技領域創作者,十年互聯網從業經驗,歡迎關注我了解更多科技知識!