小背景:我是這家公司唯一的程序員。我正在使用預先存在的框架。何時擔心SQL注入保護
這就是說,該公司有一個dll(Database.dll),其中包含「我需要的所有數據庫交互」。如在中,它有一個Query()
,Update()
,Insert()
等。現在,我正在編寫的項目設置了對Database.dll的引用。我的項目接受零用戶輸入。最接近用戶輸入的是用戶可以從中選擇日期的下拉框。沒有太多的經驗,我很好奇,如果我仍然需要擔心SQL注入?如果是這樣,會寫一個類似於
作爲參數化查詢就足夠嗎?請記住,所有的查詢執行都由已知的Query()
來處理,我被告知必須使用它,並且無法編輯。
EDIT
該方案是一個WinForm應用程序。
正確答案是「永遠」。 –
你應該總是與它有關,但它聽起來像的唯一途徑有人開發者可以提交數據庫請求的外面是通過一個下拉菜單選擇,以便有很少的機會,他們可以注入任何東西。這是一個Web應用程序或控制檯應用程序,有一個Web應用程序會大大增加風險,因爲不同的方式發佈。使用控制檯應用程序它可能不會有太大的問題。 – Robert
除非你正在做一些無法參數化的東西,否則只需進行參數化即可。除了安全性之外,您可能會獲得性能提升:參數化將使您的RDBMS節省參數化查詢本身的工作量,使其與執行計劃相匹配。一個客戶端,你不需要分配/格式化大量的字符串,代碼更整潔等等。 –