PHP安全 錯誤報告說明

2022-03-17 08:51:32 字數 613 閱讀 8776

從早期的版本到 2004 年 7 月 13 日發布的 php 5,錯誤報告都是相當簡單的。除了小心編寫程式,還要留意一些特定的 php 配置專案:

error_reporting

這個專案設定了錯誤報告的等級。不論是開發還是部署環境,強烈建議將這個專案設定為e_all。

display_errors

這個專案決定是否將錯誤顯示在螢幕上(包含在輸出中)。應當在開發中設定為on,這樣可以在開發時就發現錯誤;應當在部署環境中設定為off,這樣在所有使用者(和潛在攻擊者)面前錯誤將被隱藏。

log_errors

這個專案決定是否將錯誤寫入日誌。雖然這會引起效能損失,但是對於並不經常出現的錯誤這是非常必要的。如果在硬碟上記錄錯誤帶來了巨大的 i/o 負荷,比起應用程式的效率來說,這或許應當引起更多的注意。應當在部署環境中設定為on。

error_log

這個專案決定了日誌檔案存放的位置和名字。一定要確保 web 伺服器對指定檔案擁有許可權。

設定error_reporting為e_all對於強制初始化變數有幫助,因為使用乙個未定義的變數會產生提示(notice)。

注意這些專案的每乙個都可以使用ini_set()設定,而不需要訪問php.ini或者其他操作設定這些專案。

PHP錯誤報告

級別常量 錯誤值錯誤報告描述 e error 致命的執行時錯誤 阻止指令碼執行 e warning 執行時警告 非致命性錯誤 e parse 從語法中解析錯誤 e notice 執行時注意訊息 可能是或可能不是乙個問題 e core error php啟動時初始化過程中的致命錯誤 e core wa...

PHP 設定錯誤報告

總結 php能夠在執行時動態設定是否顯示錯誤 顯示的錯誤級別。例子 不輸出錯誤報告 error reporting 0 輸出給定級別的錯誤 error reporting e error e warning e parse e notice 輸出除了e notice的他所有錯誤 error repo...

PHP錯誤報告級別

error reporting e all e notice 錯誤報告級別是位字段的疊加,推薦使用 e all e strict 1 e error 致命的執行時錯誤 2 e warning 執行時警告 非致命性錯誤 4 e parse 編譯時解析錯誤 8 e notice 執行時提醒 經常是 bu...