2013-09-28 16 views
3

我正在使用mysqli預準備語句和綁定變量。Mysql數據庫攻擊除了Sql注入

  1. 然後爲了防止sql注入,我需要做什麼(如:數據類型驗證,過濾,淨化,字符串轉義等)與用戶輸入?

  2. 除Sql注入外,還有其他攻擊MySql數據庫的方式嗎?

+0

當然 - 竊取密碼不正確,只是破壞數據。 – duffymo

+0

是的,有。查看[MySQL中的公開漏洞]的歷史記錄(http://www.cvedetails.com/vulnerability-list/vendor_id-185/Mysql.html)。 – Gumbo

+0

你不能攻擊你無法訪問的東西,所以你的MySQL服務器應該防止從互聯網上訪問,理想情況下,不應該從網絡中任何不需要訪問的機器訪問,所以那些機器如果受到威脅,不會提供訪問它的中間路徑。你的應用程序應該只使用一個mysql帳戶,只需要它所需的權限,而不是更多。 –

回答

2

防止SQL注入,你必須格式查詢正確
必須正確格式化每個必須被添加到查詢動態的文字。
不僅數據文字像字符串和數字,但所有這些文字,包括運算符和標識符。 使值格式化的唯一正確方法是準備語句。

對於標識符和運算符,您還需要過濾,以便只允許查詢。

無論用戶輸入根本不應該涉及。它是目的地,而不是重要來源。

除Sql注入外,還有其他攻擊MySql數據庫的方式嗎?

肯定的事情。但是這個話題太廣泛了,無法通過論壇帖子來保證你的安全。更好地聘請DBA。

+0

@您的常識「無論用戶輸入什麼都不應該涉及,它是目的地,而不是源代碼。」 - 我不明白 – SCC

+0

你應該正確格式化**所有進入查詢的**,而不僅僅是某個數據子集,不管你怎麼稱呼它。 –