移除 Nginx/IIS 伺服器資訊
公司最近做了資安檢測,有被檢測出來 response 中不應該帶入 server 的版本相關資訊,才不會因此而被拿來做為攻擊的依據,以下會說明 IIS 和 nginx 各自怎麼設定。
IIS
如果網站數量比較少,可以考慮用 web.config 來設定,因為公司有多台主機而且服務眾多,以下選擇從 IIS 上每台作設定。
使用 web.config 的設定可以參考保哥的文章 如何設定 ASP.NET Core 在發行到 IIS 時移除 X-Powered-By 標頭
在 IIS root 的右側找到 管理 -> 設定編輯器

點開後總共要改三個東西,修改後要將 IIS 重啟
Server Header
在上面的區段找到 system.webServer/security/requestFilter,在下方的內容找到 revmoeServerHeader 將值改為 true,修改後要點選右方 動作 的 套用
X-Powered-By
在區段找到 system.webServer/httpProtocol,下方的 customHeader 點開來

先點選 X-Powered_By項目,再點選右邊的移除,修改後要點選右方 動作 的 套用
Version Header
找到區段 system.web/httpRuntime,選擇 enableVersionHeader 將值改為 false,修改後要點選右方 動作 的 套用

Nginx
打開 nginx.conf 找到 http 的區塊作以下的調整
Hide Version
只要加上 server_tokens 的設定,就可以版本隱藏掉
1 | http { |
Clear Server Header
想要把 nginx 的資訊完全隱藏掉的話,可以安裝模組
1 | apt install nginx-extras |
1 | http { |
組合起來就是這樣
1 | http { |