2011-05-01 63 views
1

是否有可能使用gzcompress(以及從數據庫中檢索gzuncompress)函數來防止mysql注入?或者有沒有一個原因,爲什麼這不起作用?或者有沒有理由說這根本不是一個好主意?php,通過使用gzcompress防止mysql注入?

+0

據我所知,以防止SQL注入的最佳方式是使用,而不是串聯命令的參數。 – Dmitry 2011-05-01 07:35:13

回答

3

這是一個壞主意,因爲

  • 從理論上說,有可能是數據的序列,壓縮時,導致SQL注入或乾脆打破了查詢

  • gzcompressed數據可以」 t被正確索引和搜索 - 你將有一個數據庫充滿了亂碼字符

  • gzcompression計算成本很高

只需使用庫的字符串轉義方法(如mysql(i)_real_escape_string())或參數化查詢,在將數據輸入數據庫之前始終對數據進行清理。

如果你可靠地做到這一點,就不需要進一步的保護。

+3

雖然壓縮數據導致SQL *注入*的可能性非常低,幾乎不存在,但它更容易破壞SQL語法。所以你無論如何都要回避或者綁定價值。 +1 – deceze 2011-05-01 07:38:14

1

爲防止SQL注入攻擊,請使用PDO的參數化查詢。

1

SQL注入可以防止2種方式之一。您可以使用參數化查詢,也可以在構建SQL語句時正確清理值。

現在,你所建議的可能會阻止注入到數據庫中,但這並不能消除將SQL語法錯誤(有效SQL注入)引入SQL語句的可能性。

此外,通過使用壓縮功能,它將消除在不經過解壓縮的情況下查看或搜索數據庫內容的可能性。

這是一種避免SQL注入的新方法,但會導致更多的問題,而不是實際解決的問題。你真的需要堅持經過驗證和真正的解決方案。