程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> WordPress禁止輸出錯誤信息設置方法

WordPress禁止輸出錯誤信息設置方法

編輯:關於PHP編程

     用網站安全檢測掃瞄博客,發現了一個漏洞,實際上就是直接訪問主題路徑的話,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首頁模版,將頭部代碼更改為下面的即可,注意所有符號為英文。

     代碼如下  

    <?php ini_set('display_errors', 0); ?>
    <?php
    /**
    * @package WordPress
    * @code www.45it.net
    if (function_exists('get_header')) {
     get_header();
    }else{
        header("Location: http://" . $_SERVER['HTTP_HOST'] . "");
        exit;
    }; ?>

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved