我需要構建要與WHERE子句一起使用的搜索條件。然後將此搜索條件傳遞給不同的應用程序,以作爲SQL查詢的一部分執行。因爲搜索條件可能非常複雜(包括子查詢),我不相信接收應用程序可以智能地解析它們以防止SQL注入攻擊。爲SQL WHERE子句構建安全搜索條件
最佳做法聲明應使用參數化查詢。當你使用命令對象自己執行查詢時,這很好。在我的情況下,我希望獲得該查詢字符串與參數合併到它,並解析出我感興趣的搜索子句。有沒有辦法做到這一點?
我與MS SQL Server一起工作,目前只需用來自調用者的字符串中的兩個單引號替換所有單引號。有沒有更好的方法來實現SQL注入攻擊的一定程度的保護?
不同什麼? – SLaks 2009-12-06 15:19:08
如果您獲得的字符串已將參數合併到其中,那麼如何「用兩個單引號替換所有單引號」?難道這不會像'WHERE name ='KOTMATPOCKUH'這樣的東西? – Heinzi 2009-12-06 15:35:47
@Heinzi我要建立WHERE,所以我給了搜索值KOTMATPOCKUH。但它也可能包含惡意代碼。使用參數會很理想,但是看起來我不能讓.NET爲我完成這項工作,並將查詢返回給我。 – LeffeBrune 2009-12-06 15:41:57