我正在寫我的PHP應用程序中的錯誤提交類。我想捕捉的異常被拋出時,整個$_SERVER
,如果用戶決定提交錯誤報告,存儲陣列$_SERVER
與喜歡的問題,時間的描述其他有用信息的數據庫等
我計劃將捕獲的$_SERVER
傳遞給$_SESSION
中的bug報告表單,但我擔心如果我這樣做,我會暴露可用於利用我的系統的數據。要命名一對夫婦:
SERVER_SOFTWARE
DOCUMENT_ROOT
我是不是把自己處於危險之中?
我正在寫我的PHP應用程序中的錯誤提交類。我想捕捉的異常被拋出時,整個$_SERVER
,如果用戶決定提交錯誤報告,存儲陣列$_SERVER
與喜歡的問題,時間的描述其他有用信息的數據庫等
我計劃將捕獲的$_SERVER
傳遞給$_SESSION
中的bug報告表單,但我擔心如果我這樣做,我會暴露可用於利用我的系統的數據。要命名一對夫婦:
SERVER_SOFTWARE
DOCUMENT_ROOT
我是不是把自己處於危險之中?
我在這樣的班級裏看不到任何一點。
爲什麼用戶干預,如果你的代碼可以自動存儲所有的相關信息,安全和準確?
爲什麼不能在拋出異常時在異常處理程序中記錄所有相關信息?
要從字面上回答你的問題 - 是的,一些服務器信息被認爲是敏感的。
雖然我看不出公開它的方式,除非你的錯誤報告的想法是要求用戶通過他們自己的電子郵件發送報告文本。
該課程不是必需的。
而是使用這個模板腳本:
try {
// You usual script here - but do not use die - use throw new Exception(...)
// Could use include directive for example
// Of course you may need to re-throw some exceptions
} catch (Exception $e) {
// Here you can record the fault (i.e. details of the exception $e,
// server variables $_SERVER, S_SESSION and the like
// Now give the user the internal server error and a pretty message saying
// something along the lines that you are sorry and it is not their fault.
}
此模板不會暴露任何您的網站的內部工作的遠程客戶端 - 無安全隱患。
異常處理程序必須用於此。 – 2013-03-09 07:10:15
@YourCommonSense - 代碼將最終捕獲所有異常。您可以修改它(我過去已經完成)以捕獲特定的異常,並且記錄錯誤並執行其他操作(例如,如果無法連接到某人的數據庫電子郵件) – 2013-03-09 07:14:43
曝光?哪一條路? – 2013-03-09 07:03:13