web-server

如何關閉 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

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版本
[test http get]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

curl -v http://erwin.myftp.org/tt.php
* Hostname was NOT found in DNS cache
* Trying 220.133.22.202...
* Connected to erwin.myftp.org (220.133.22.202) port 80 (#0)
> GET /tt.php HTTP/1.1
> User-Agent: Mozilla/5.0 Gecko
> Host: erwin.myftp.org
> Accept: */*
>
< HTTP/1.1 200 OK
< Date: Thu, 23 Jun 2016 02:59:07 GMT
* Server Apache is not blacklisted
< Server: Apache
< Content-Length: 29
< Content-Type: text/html
<
* Connection #0 to host erwin.myftp.org left intact
User: www-dataGroup: www-data

如何關閉 Web Server相關訊息

當找不到網頁時,如何關閉 web server提示

  • 當使用都找不相關網頁,Apache會有下例提示
[http 404] [http 404 source]
1
2
ServerSignature Off                                                      
ServerTokens Prod
  • 修改之後apache的回應如下[http 404] [http 404 source]

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)

    [http 404]
  • 設定/etc/php5/apache2/php.ini修改如下

1
expose_php = Off
  • 修改之後web server回應如下[http 404]

參考來源