header_remove, 修改/移除 php header

未分類

有些時候 web server 回應需求的時候

會需要把一些 header 資訊拔掉

以下是一般瀏覽器對一個 web server 發出需求時

web server 的回應




這邊我們可以看到 Server 回應

X-Powered-By: PHP/5.6.30

如果你用 buildwith 的服務去看

也會看到



buildwith 是怎麼知道這個網站是 php 寫的呢?

其實就是判斷 X-Powered-By 這個 header 來的

如果我們不想讓別人知道網站是用 php 寫的

一般人的作法是

把 URL rewrite

例如 news.php?act=detail&id=123

改成 news/detail/123

或是甚至想誤導你 改成

news.asp?act=detail&id=123

(以為改成asp人家就以為你是asp寫的)

這樣其實只能騙外行人

因為他去看 X-Powered-By 還是可以看到

X-Powered-By: PHP/5.6.30




我們可以在程式裡面加一行

header_remove('x-powered-by');

這樣輸出的時候就不會有 X-Powered-By 的敘述

外界就無從判斷起主機是用什麼語言寫的


不過因為這是改 header

所以記得要在印出任何 body 前就要執行

不然會沒效果喔 (還會噴錯誤訊息)


後記:

結果發現我想太多了
php 有個叫做 expose_php 的參數
只要在 php.ini 把他設定成 off 就好了

例如
expose_php = Off
就可以達到本篇的效果