2017-02-21 72 views
0

我想發送MySQL錯誤號碼使用mysqli_errno()到頁面告訴用戶, '這個代碼有錯誤,如果這仍然存在,請發送此代碼給網站所有者在[email protected]'。是否顯示常規用戶mysqli_errno認爲安全?

我已經看到一個教程,展示瞭如何將mysqli_error()消息引發到錯誤頁面,但我不希望用戶看到描述性文本,只是代碼。

這是安全嗎?

將顯示MySQL錯誤代碼不威脅我的網站的安全?

我想從錯誤代碼中獲益以解決問題。你建議其他技術?

+0

安全與否,這是完全沒用的。您的用戶無法調試您的代碼庫或修復您的服務器:) –

+0

@ÁlvaroGonzález謝謝,他們不能,但我認爲可能有所幫助:) – malozaibi

回答

0

不要這樣做。暴露服務器基礎設施的細節是一個安全漏洞。如果攻擊者知道你在使用mysql,他們可能會嘗試使用mysql漏洞。最好保持此信息的私密性。

相反,您應該爲您的客戶端創建一個服務接口,以便他們可以登錄以讀取其錯誤日誌。您可以爲每個錯誤(guid)生成一個唯一的ID,並將該錯誤保存到由同一個GUID鍵入的數據庫中。您可以隨後將該GUID返回給客戶端(例如,作爲標題)。您的客戶端可以掌握這一點,並使用您的管理員/錯誤服務來查詢數據庫中與該ID相關的錯誤。

我知道這聽起來很複雜,但安全性很複雜。有很多方法可以簡化這個 - 例如COTS工具,但它們都基本遵循這種模式。

+0

謝謝你的警告。我不會這樣做。你是否減少了更好的解決方案? – malozaibi

+0

我已回覆作爲答案的一部分。感謝您建議它可能會更好。 –

+0

謝謝,我是一個初學者,但我會在將來使用你的技術,當我提高我的技能,最好的問候:) – malozaibi