.NET中的參數化查詢安全嗎?也就是說,.NET在使用參數時會自動轉義危險字符嗎?.NET參數化查詢注入
4
A
回答
12
當您使用參數時,它們通常不會首先作爲文本發送。他們可以使用數據庫的本地有線協議。如果參數本身是一個文本參數,那麼它通常會被封裝在協議中,以便數據庫知道它是一個參數而不是SQL。
雖然我想供應商可能只是將參數轉換爲完整的SQL語句,這將是一個可怕的做事方式。
所以基本上「是」 - 參數化查詢是從SQL注入攻擊安全有效,只要你沒有存儲動態執行參數,作爲SQL等程序
2
當您使用參數,NET的SQL客戶端會將參數值發送到原始TDS流中的SQL服務器。
但是,這並不能保護您免受不良SQL影響。
如果你的SQL調用EXECUTE
的字符串包含一個連接參數,那麼你仍然是脆弱的。
0
就字符串值而言,是的 - .NET會將它們轉義給您,您可以通過嘗試在表中找到值 - 「comment」來查看這些值,這會破壞連接的語句,但哪些工作正常用參數化查詢。
正如喬恩所說,儘管像數字和日期這樣的東西將會以他們的原生格式發送,這樣更安全/更快。
相關問題
- 1. 插入參數化查詢
- 2. 在LINQ查詢中注入參數
- 3. ASP.NET中的參數化查詢SQL注入
- 4. SQL注入,使用參數化的查詢
- 5. 參數化查詢
- 6. 參數化查詢
- 7. 參數化查詢
- 8. 混合參數化查詢和插入
- 9. 文本輸入的參數化查詢
- 10. JPA查詢 - 位置參數sql注入jpa本地查詢
- 11. 如何將以下查詢寫入參數化查詢?
- 12. MS-接入+ VB6:參數化查詢不存儲查詢
- 13. 如何參數化查詢?
- 14. MSSQL參數化查詢
- 15. 從參數化SQL查詢
- 16. Postgresql參數化查詢
- 17. 參數化查詢Visual Basic
- 18. 參數化WHERE在查詢
- 19. 從參數化SQL查詢
- 20. 參數化查詢問題
- 21. ColdFusion的參數化查詢
- 22. SPARQL參數化查詢
- 23. C#mysql參數化查詢
- 24. Python - MySQLdb參數化查詢
- 25. ASP/MySQL - 參數化查詢
- 26. 有關參數化查詢
- 27. pymysql:MySQL參數化LIKE查詢
- 28. 參數化查詢jqgrid
- 29. Crystal Reports參數化查詢
- 30. SQL參數化查詢CTE
我不確定我會說他們真的被*轉義*這樣 - 他們很可能被封裝在這樣一種方式,以消除轉義的要求。它更可能是「接下來的20個字節形成以UTF-8編碼的字符串參數」 - 如果該數據包含引號等,則無關緊要,因爲它不會被視爲SQL。 – 2010-07-27 15:33:57
事實上 - 「封裝」是一種更加準確的說法,因爲「解析」只是解析器具有不能使用的特殊字符時才執行的操作,在這種情況下不適用。 – SqlRyan 2010-07-27 15:39:40