如何關閉 Web Server相關訊息(ex. 關閉,當找不到相關的網頁提示server版本)
先了解http基本原理,可以於response head內即可以查訊到web server版本訊息
說明如何移除apache版本(Server: Apache/2.x.x) 及 php版本訊息(即X-Powered-By)
移除一些server基本訊息,避免有心人事利用版本的漏洞來攻擊
更新記錄
item | note |
---|---|
20160623 | 第一版 |
目錄
HTTP
了解基本http協定及Response內容
HTTP method
- 來源-淺談 HTTP Method:表單中的 GET 與 POST 有什麼差別
- 如果 HTTP 代表現在我們現實生活中寄信的機制,那麼信封的撰寫格式就是 HTTP
- 信封外的內容稱為 http-header,信封內的書信稱為 message-body
- 那麼 HTTP Method 就是你要告訴郵差的寄信規則
- HTTP GET Method 中是不允許在 message-body 中傳遞資料的,因為是 GET 嘛,就是要取資料的意思
- POST 是將表單資料放在 message-body 進行傳送
- 來源-常見的HTTP Method的不同性質分析
- HTTP協定中定義了多種不同的method,瀏覽器或是其他程式再進行HTTP連線時,會使用這些method來進行連線並取得回復
- 六種HTTP Method分別是head,get,post,delete,put,patch
HTTP Response Status Code
- Hypertext Transfer Protocol – HTTP/1.1
Status Code由3碼數子組成
第1碼數字定義class of response如下
status code | class | note |
---|---|---|
1xx | Informational | Request received, continuing process |
2xx | Sucess | The action was successfully received, understood, and accepted |
3xx | Redirection | Further action must be take in order to complete the request |
3xx | Clinet Error | The request contains bad syntax or cannot be fulfilled |
4xx | Server Error | The server failed to fulfill an apparently valid request |
測試http get
- 說明當你在網頁輸入http://xx.xx/tt.php時會流程如下
- 1.向web server提出http get需求(含Request Header)
- 2.web server依需求(即要找tt.php內容)及參考http method回應內容(含Response Header)
- 此處即可看出你的web server版本
1 |
|
如何關閉 Web Server相關訊息
當找不到網頁時,如何關閉 web server提示
- 當使用都找不相關網頁,Apache會有下例提示
- 於/etc/apache2/apache2.conf新增下例二行
- 參考來源-How to turn off server signature on Apache web server
1 | ServerSignature Off |
- 修改之後apache的回應如下
apache2.conf設定說明
- ServerTokens Directive
Configures the Server HTTP response header
This directive controls whether Server response header field
ServerTokens | note |
---|---|
Full (or not specified) | Server: Apache/2.4.2 (Unix) PHP/4.2.2 MyMod/1.2 |
Prod | Server: Apache |
Major | Server: Apache/2 |
Minor | Server: Apache/2.4 |
OS | Apache/2.4.2 (Unix) |
如何關閉respnse head php版本顯示
如何關閉php版本顯示
當web server回應http 200 ok時,response head內可以查訊到php版本(即X-Powered-By)
設定/etc/php5/apache2/php.ini修改如下
1 | expose_php = Off |
- 修改之後web server回應如下