request header中的host偽造

2021-10-07 07:47:55 字數 709 閱讀 2165

如:

…乙個ip位址可以對應多個網域名稱: 一台虛擬主機(伺服器)只有乙個ip,上面可以放成千上萬個**。當對這些**的請求到來時,伺服器根據host這一行中的值來確定本次請求的是哪個具體的**

二、request中的各種方法

request.getservername() // 獲取url請求的名字(以ip請求就是ip,以網域名稱請求就是網域名稱)

request.getheader(「host」) //直接從請求頭里獲取了host--------不安全

三、host頭攻擊

漏洞描述:通過偽造ip位址能夠繞過應用ip位址限制,訪問和執行系統相關功能。

測試方法:使用**軟體攔截請求包,修改http頭中的host欄位,偽造ip位址繞過限制。

風險分析:攻擊者可利用該漏洞訪問受限系統,造成應用系統資料洩漏。

風險等級:

【高危】:訪問重要系統/執行重要功能

【中危】:訪問非重要系統/執行非重要的功能

修復方案:

使用getservername()代替getheader(「host」);

在apache和nginx裡可以通過設定乙個虛擬機器來記錄所有的非法host header,或者在apache和nginx裡指定乙個servername名單;同時,apache開啟usecanonicalname選項。

RequestHeader 繫結請求頭資料

requestheader 用於將請求的頭資訊區資料對映到功能處理方法的引數上。public string test requestheader user agent string useragent,requestheader value accept string accepts 如上配置將自動...

前端自定義request header傳給服務端

前端ajax新增自定義canary屬性 beforesend function request 前端axios配置 axios.create 服務端需要配置該自定義header支援跨域訪問 response.setheader access control allow headers content...

Python中的descriptor中的一點疑問

在我的印象中,類中的函式是可以有兩種呼叫方式的,如下 class b def func self return 10 b b b.func b.func b 於是,在之前研究descriptor的時候,我就有了幾點困惑 我將 更換成了如下兩個版本 版本1 import time class lazy...