用網站安全檢測掃瞄部落格,發現了一個漏洞,實際上就是直接存取主題路徑的話,get_header()函數未生效(Call to undefined function get_header() ),而我的WordPress會輸出完整的錯誤資訊,將敏感名稱的目錄結構暴露了,雖然對正常訪問沒有影響,可是會給某些人可乘之機。經常在部落格後台看到很多人掃瞄部落格各種路徑或檔案,儘可能多的解決漏洞,會大大增強網站安全性。秀一下我的部落格安全性,100分,沒有漏洞;雖說只是表面的,但是我會發現一個解決一個!
下面詳細說明下我遇到的問題和解決方案,供參考。
環境:linux vps + lnmp
完整錯誤資訊如下:
Fatal error: Call to undefined function get_header() in /網站根路徑/izhangheng/wp-content/themes/twentytwelve/ on line 10
解決方案:
如果WEB應用程式內建錯誤處理/管理系統,請確保功能開啟;否則按語言、環境,分別進行處理。如果是PHP應用程式/Apache伺服器,可以通過修改php指令碼、配置php.ini以及httpd.conf中的配置項來禁止顯示錯誤資訊。
1.1、修改php.ini中的配置行: display_errors = off
2.2、修改httpd.conf/apache2.conf中的配置行: php_flag display_errors off
3.3、修改php指令碼,增加程式碼: ini_set(‘display_errors’, false);
針對這個問題,僅不顯示錯誤資訊是不完美的,出錯後跳轉到首頁,可以避免流量丟失。我的環境預設就關閉顯示錯誤資訊,只需要在有漏洞的頁面源碼前調用WordPress函數即可。首先進入到WordPress背景外觀中,比如編輯的是index.php首頁模版,將頭部代碼更改為下面的即可,注意所有符號為英文。
| 代碼如下 |
|
| /** * @package WordPress * @code www.45it.net if (function_exists('get_header')) { get_header(); }else{ header("Location: http://" . $_SERVER['HTTP_HOST'] . ""); exit; }; ?> |
http://www.bkjia.com/PHPjc/372436.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/372436.htmlTechArticle用網站安全檢測掃瞄部落格,發現了一個漏洞,實際上就是直接存取主題路徑的話,get_header()函數未生效(Call to undefined function get_header() ),...