簡體   English   中英

檢查C#查詢字符串以進行SQL注入

[英]Check C# query string for SQL injection

給我一個項目,當時的開發人員沒有參數化SQL查詢,而只是將用戶提供的值連接在一起。 現在,我承擔了使應用程序免受SQL注入攻擊的任務,並且工作量盡可能小。 很多SQL查詢分布在整個代碼中,因此幾乎不可能對所有查詢進行后處理。 這將花費我許多月的時間。

優點是所有查詢都通過一種方法執行。 我現在的解決方案是在執行此方法之前,先檢查運行所有查詢的該方法中的查詢字符串,以查找分號和'GO'關鍵字。 在這一點上,應該提到的是,我可以保證始終只執行一個查詢。 如果字符串中有多個分號或'GO'語句,我將拒絕執行該數據庫並中止該過程。

現在我的問題是:有沒有更好的建議來解決問題? 您如何在這里解決問題?

謝謝。

我真的不認為除了使用完全阻止它的SQL Server功能(參數化查詢)以外的任何措施都可以為您提供幫助。 您可以在某種程度上嘗試防止進樣的發生,刪除明顯的進樣向量,但您永遠無法確定。 黑客是有創造力的家伙:)

因此,如果您想要一個可靠的解決方案,建議您重寫為參數化查詢。 使用Dapper這樣非常容易。 但是我知道您擁有的代碼量可能會使它非常耗時,但是不幸的是沒有辦法解決。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM