-2
插入準備語句時是否需要轉義字符?準備好的語句是否爲我逃避代碼?是否將addslashes()和準備語句冗餘
插入準備語句時是否需要轉義字符?準備好的語句是否爲我逃避代碼?是否將addslashes()和準備語句冗餘
更容易問這麼社區,而不是使用谷歌...
逃逸和SQL注入
綁定變量從查詢分別發送給服務器,因此不能干擾它。在解析語句模板之後,服務器直接在執行時使用這些值。綁定參數不需要轉義,因爲它們從不直接替換爲查詢字符串。必須向服務器提供綁定變量類型的提示,以創建適當的轉換。有關更多信息,請參閱mysqli_stmt_bind_param()函數。
這樣的分離有時被認爲是防止SQL注入的唯一安全功能,但如果所有值的格式都正確,則可以使用非預處理語句實現相同程度的安全性。應該注意,正確的格式與轉義不同,涉及的邏輯比簡單的轉義更多。因此,準備好的語句只是這種數據庫安全性的一種更方便,更不容易出錯的方法。
...假設你得到了的mysqli當然
的或者更好的PDO – RiggsFolly
@RiggsFolly我是假設我是粘貼PDO說明書的一部分,但後來決定不改變它,因爲這個問題去重複無論如何:) –
只是一個建議 – RiggsFolly