Nginx 防host攻擊漏洞

URL存在http host頭攻擊漏洞。

http協議中,host值經常被使用於jsp 中獲取上下文,如果不做驗證,很容易被引用其他途徑的資源。

 

cmd中運行,curl 去官網下載解壓就能用(你想全局用,就設置環境變量吧,這個博文也很多)

curl -i "www.baidu.com" -v -H "Host:www.baidu2.com"| more

通過-H 參數,修改http頭內容。正常情況下,host 是請求地址去掉端口號,如下。

 

所以,防止此漏洞的思路。

    方式一:在nginx(如果有的話。沒有ng就去tomcat 的 server.xml中配置)中做白名單判斷。

    方式二:在nginx中做變量匹配(請求地址和host參數值做相似對比),應該這種方式是最合理的。

 

目前我實現的是方式一。

在nginx.conf文件中,"server {   listen       80; ..... "中 增加

        set $flag 0;

        if ($host = "www.baidu.com"){

                set $flag 1;

        }

        if ($host = "www.baidu-test.com"){

                set $flag 1;

        }

        if ($flag = "0"){

                return 233;       //不在白名單內的host值,報錯

        }

因爲我這版本的ng不支持或運算,所以,使用變量判斷的方式實現白名單功能。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章