2011-10-29 22 views
1

我打算通過使用$變量來防止SQL注入,並將其路由到一個函數,該函數將掃描任何sql命令的$變量或任何注入嘗試。我還會列出一些常用的sql命令列表,供人們使用注入,以便檢測到。這個SQL注入預防工作是否在理論上?

注:我以前問過類似的問題,但這個時候,我有一個理論,我設法想;)

回答

3

防止SQL注入的最簡單而安全的方法是使用任何不可信的數據mysql_real_escape_string()(如:$ _GET或$ _POST)。它將轉義任何特殊字符,以便查詢安全。

如果你使用的mysqli,看到http://www.php.net/manual/en/mysqli.real-escape-string.php

更多關於SQL注入以及如何保護自己反對:http://www.php.net/manual/en/security.database.sql-injection.php

所以,你的計劃是不是做到這一點的最好辦法。它不必要地使事情複雜化。

3

否。黑名單將不可避免地給出誤報,幾乎肯定會給出錯誤的否定。

使用bound parameters並讓數據庫爲您處理它。