3. 錯誤報告和除錯
常常犯的乙個錯誤是忘記關閉 php 錯誤和資料庫錯誤報告,這樣做是有風險的。在任何乙個公開的站點,error_reporting 應該設定為0 ,最多只能設定為 e_error,資料庫設定 db_debug 應該設定為 false,基於其他安全考慮,設定不顯示出錯資訊 ini_set('display_errors', 'off');
在你編碼和除錯時,應該把 error_reporting 設定為 e_all ,並且在把應用程式發布前解決每乙個注意和警告。
1
ini_set
(
'display_errors'
,
'off'
);
2
error_reporting
(0);
3
define(
'mp_db_debug'
, false);
在編碼和除錯中設定為:
1
ini_set
(
'display_errors'
,
'on'
);
2
error_reporting
(e_all);
3
define(
'mp_db_debug'
, true);
過濾不良資料.
驗證資料以確保符合正確的型別, 長度, 大小等. (有時這一步驟也可取代第一步驟)
在提交資料到你的資料庫之前將其轉換.
關於sql注入,xss,以及 csrf ,你應該先了解它們,再決定是否採用方法來防止它們。可以參考ci手冊上的安全指南 以及 輸入和安全類。也許最重要的原則是在把資料提交到資料庫或檔案系統之前檢查所有使用者的輸入。
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...