我想保護SQL注入的參數化SQL查詢。我已經閱讀了一篇關於使用PreparedStatement避免SQL注入的文章。 link如何防止特殊字符的SQL注入
根據這篇文章,它描述了準備工作有助於從緩存中選擇預編譯查詢,並且在最後一步用用戶數據替換了laceholder,並且不會再次編譯查詢。因此,如果有人提供sql查詢作爲用戶輸入,它將有助於避免SQL注入,因爲查詢將僅被編譯一次。
但是如果有人給字符串提供特殊字符如'x'='x'會發生什麼。例如,在最終查詢中,如「SELECT * FROM users WHERE username ='blah'AND password ='foo'或'x'='x'」,用戶數據替換爲'x'='x'。 PreparedStatement如何處理這些類型的特殊字符?
任何人可以幫我瞭解這個
準備好的語句不需要處理這個問題,因爲查詢和數據被分別發送到服務器。 – CBroe
OR應該如何添加?如果不是由你來添加? – baao
閱讀此https://stackoverflow.com/questions/1582161/how-does-a-preparedstatement-avoid-or-prevent-sql-injection –