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 就可以達到本篇的效果