一、PHP如何取得指定URL的header資訊
超簡單,就一行指令即可:
<?php print_r(get_headers('https://www.mdaima.com'));?> Array ( [0] => HTTP/1.1 403 Forbidden [1] => Date: Sun, 24 Jan 2021 05:09:48 GMT [2] => Server: Apache/2.4.46 (Win64) OpenSSL/1.1.1i PHP/7.3.26 [3] => Content-Length: 199 [4] => Connection: close [5] => Content-Type: text/html; charset=iso-8859-1 )
#二、如何禁顯示或隱藏header資訊的方法
共分為兩步,第一步是將PHP.ini
檔案中的expose_php = On
改為expose_php = Off
,重啟Apache
後,再看一次
Array ( [0] => HTTP/1.1 403 Forbidden [1] => Date: Sun, 24 Jan 2021 05:10:50 GMT [2] => Server: Apache/2.4.46 (Win64) OpenSSL/1.1.1i [3] => Content-Length: 199 [4] => Connection: close [5] => Content-Type: text/html; charset=iso-8859-1 )
重啟後,我們可以看到關於PHP
版本的資訊已經不顯示了,但是Apache
和服務名稱的資訊還有顯示,我們需要更徹底一點,這樣才安全。我們需要在Apache的httpd.conf中增加兩個指令,首先我們先確認一下Apache的httpd.conf檔中有沒有如下兩個設定指令,如果沒有的話直接在設定檔最下面增加兩行資料。
ServerTokens Prod ServerSignature Off
關於ServerTokens的指令設定參數看下面的說明:
ServerTokens Prod 显示“Server: Apache” ServerTokens Major 显示 “Server: Apache/2″ ServerTokens Minor 显示“Server: Apache/2.2″ ServerTokens Min 显示“Server: Apache/2.2.17″ ServerTokens OS 显示 “Server: Apache/2.2.17 (Unix)” ServerTokens Full 显示 “Server: Apache/2.2.17 (Unix) PHP/5.3.5″ (如果未指定任何的值,这个是默认的返回信息)
關於ServerSignature On的說明:
# 設定為On時,當有使用者要求造訪我們網站的網頁不存在時,伺服器將有錯誤提示顯示出來,錯誤提示將在頁面的最下方將包含伺服器的名字、Apache
的版本等相關都顯示訊息,這將給一些不安好心的人提供一些便利而利用已知的版本漏洞。所以我們最好不要顯示這些訊息,我們可以將這個參數設定為Off
。
透過修改這兩個參數設定文件,最終取得header
的效果如下:
Array ( [0] => HTTP/1.1 403 Forbidden [1] => Date: Sun, 24 Jan 2021 04:54:49 GMT [2] => Server: Apache [3] => Content-Length: 258 [4] => Connection: close [5] => Content-Type: text/html; charset=iso-8859-1 )
以上是PHP如何取得指定網址的header頭資訊及隱藏關閉的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!