不過不顯示錯誤倒安全點,建議調試時打開,然后提供服務時關閉。
提供一點資料給你:
display_errors = On
php缺省是打開錯誤信息顯示的,我們把它改為:
display_errors = Off
關閉錯誤顯示后,php函數(shù)執(zhí)行錯誤的信息將不會再顯示給用戶,這樣能在一定程度上防止攻擊者從錯誤信息得知腳本的物理位置,以及一些其它有用的信息,起碼給攻擊者的黑箱檢測造成一定的障礙。這些錯誤信息可能對我們自己有用,可以讓它寫到指定文件中去,那么修改以下:
log_errors = Off
改為:
log_errors = On
以及指定文件,找到下面這行:
;error_log = filename
去掉前面的;注釋,把filename改為指定文件,如/usr/local/apache/logs/php_error.log
error_log = /usr/local/apache/logs/php_error.log
這樣所有的錯誤都會寫到php_error.log文件里。
====================================
error_reporting
配置錯誤信息回報的等級。
語法: int error_reporting(int [level]);
返回值: 整數(shù)
函數(shù)種類: php 系統(tǒng)功能
本函數(shù)用來配置錯誤信息回報的等級,參數(shù) level 是一個整數(shù)的位遮罩 (bitmask),見下表。
遮罩值 表示名稱
1 E_ERROR
2 E_WARNING
4 E_PARSE
8 E_NOTICE
16 E_CORE_ERROR
32 E_CORE_WARNING
E_NOTICE 表示一般情形不記錄,只有程序有錯誤情形時才用到,例如企圖存取一個不存在的變量,或是呼叫 stat() 函數(shù)檢視不存在的文件。
E_WARNING 通常都會顯示出來,但不會中斷程序的執(zhí)行。這對除錯很有效。例如:用有問題的正則表達式呼叫 ereg()。
E_ERROR 通常會顯示出來,亦會中斷程序執(zhí)行。意即用這個遮罩無法追查到內存配置或其它的錯誤。
E_PARSE 從語法中解析錯誤。
E_CORE_ERROR 類似 E_ERROR,但不包括 php 核心造成的錯誤。
E_CORE_WARNING 類似 E_WARNING,但不包括 php 核心錯誤警告。
――――――――――――
額外:
1.
php文件中
error_reporting(7) 其中的7 就是 1+2+4,也就是回報 1 E_ERROR 2 E_WARNING 4 E_PARSE
2.
php.ini中
display_errors = Off //默認是關閉錯誤提示
error_reporting = E_ALL //顯示從不良編碼實踐到無害提示到出錯的所有信息,由于回報的信息太細化了,包括了無害信息,為了在開發(fā)過程中能看到實際的提示,建議配置為 error_reporting = E_ALL & ~E_NOTICE
php技術:修改php.ini以達到屏蔽錯誤信息并記錄日志,轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。