共計(jì) 786 個(gè)字符,預(yù)計(jì)需要花費(fèi) 2 分鐘才能閱讀完成。
本篇文章為大家展示了 Java HTTP Host 頭攻擊原理以及如何防御,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。
對(duì)于 Java 程序員來說,一個(gè)服務(wù)器上跑多個(gè)程序是非常常見的現(xiàn)象。
但是這樣做后會(huì)有一個(gè)問題,那就是容易造成 Host 頭攻擊。這也是之前微信群里一個(gè)網(wǎng)友遇到的問題。今天我在這里給大家扯一扯。
host 頭 (host header 或稱主機(jī)頭) 攻擊,非常常見。比如,在 jsp 中,我們通常可能存在類似下面的代碼。
上面的幾種加載路徑,背后都是通過 host 取得 url 地址,再拼接上固定的內(nèi)容。
這個(gè)時(shí)候,假如我把你的 host 頭給改掉了,比如改成我的 www.xttblog.com。然后這時(shí)你在加載的 js 文件,可能就來源于我的網(wǎng)站中已做好陷阱的 js 文件了。
這樣,黑客就能拿到你的 cookie、用戶名、密碼等關(guān)鍵數(shù)據(jù)。這就是著名的 host 頭攻擊。
更有甚者,在你的網(wǎng)站上放入病毒,挖礦等代碼。而你還不知道你被利用了。
那么該怎么解決這類問題呢?很簡(jiǎn)單,下面我們以 Nginx 為例,只需要修改一下配置文件即可。Apache 我就不舉例了。
添加一個(gè)默認(rèn) server,當(dāng) host 頭被修改匹配不到 server 時(shí)會(huì)跳到該默認(rèn) server,該默認(rèn) server 直接返回 403 錯(cuò)誤。
重啟 nginx 即可。
除了這種做法,也可以在目標(biāo) server 添加檢測(cè)規(guī)則。比如下面的 if 判斷配置。
另外,在 Tomcat 的配置文件,我們也可以直接配置 Host 的 name 為具體的 ip 地址,不要配置 localhost。
說白了,這個(gè)漏洞是因?yàn)槟闶褂昧?Host 而沒驗(yàn)證它。
目前,綠盟、burpsuite、360 等工具都可以對(duì)這一漏洞進(jìn)行檢測(cè)!
上述內(nèi)容就是 Java HTTP Host 頭攻擊原理以及如何防御,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注丸趣 TV 行業(yè)資訊頻道。