我有一個任務,以防止ASP.Net Web應用程序中的SQL注入。有一個評論文本框,測試人員將其標記爲SQL注入的可能位置。將文本插入到數據庫的提交按鈕事件已使用Oracle參數化的SQLCommand。但是在測試時,我能夠插入「選擇'duff'」;「作爲評論。所以我很好奇如何防止SQL注入,當我可以找到人說使用參數。所有的建議表示讚賞。謝謝。以下是調用存儲過程的行。提交之前消毒Asp.Net文本框,以防止SQL注入
dbCommand = db.GetStoredProcCommand("ABC.Insert_My_Comment");
db.AddInParameter(dbCommand, "in_comments", DbType.String, obj.Comments);
db.ExecuteNonQuery(dbCommand);
你的代碼看起來很好。用戶是否將這個標籤作爲文本框的唯一原因標記爲可能的sql注入? –
我猜這就是背後的原因。但我不知何故應該阻止插入任何類型的SQL。我曾考慮過正則表達式驗證,但是您是否知道其他方法?並感謝您的意見。 – jhorton
你應該防止將sql查詢的文本插入到註釋字段中?這看起來並不像你的時間用得很好,說實話。註釋是否作爲針對數據庫的查詢運行?這與防止SQL注入不同。注射將是如果有人把''); DROP TABLE COMMENTS;'到註釋框中,並且它實際上丟棄了該表。它不會,因爲你的代碼只會將該文本放入註釋字段。那有意義嗎? –