HW時遇到的問題
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5iYwETZ1UWNwEWYwQWZiNmYmNTN0EDM4gjNkJTM3MmY08CX5d2bs92Yl1iclB3bsVmdlR2LcNWaw9CXt92Yu4GZjlGbh5yYjV3Lc9CX6MHc0RHaiojIsJye.png)
為了友善的獲得網站域名,開發人員一般依賴于HTTP Host header。例如,在php裡用_SERVER[“HTTP_HOST”]。但是這個header是不可信賴的,如果應用程式沒有對host header值進行處理,就有可能造成惡意代碼的傳入。
修改請求頭host資訊,若修改後和修改前的響應資訊一緻,則說明存在此漏洞;
若修改後和修改前的響應資訊不一緻(修改前正常響應,修改後拒絕通路),則代表無此漏洞,即修複成功。
web應用程式應該使用SERVER_NAME而不是host header。
在Apache和Nginx裡可以通過設定一個虛拟機來記錄所有的非法host header。
在Nginx裡還可以通過指定一個SERVER_NAME名單,Apache也可以通過指定一個SERVER_NAME名單并開啟UseCanonicalName選項。