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