2011-12-02 91 views
2

我使用asp.net mvc 3與WCF與EF 4.1與Sql Azure。我正在爲我的應用程序構建搜索引擎。並使用動態Linq來構建查詢。我想在這種情況下避免sql注入。同樣的最佳做法是什麼?在這種情況下我應該採取什麼預防措施?如何避免SQL注入Linq與EF在codefirst技術在c#

回答

8

只要您通過LINQ構建查詢,那麼您就不容易受到SQL注入的攻擊。雖然這並不意味着您的代碼無法抵禦各種攻擊(暴力破解密碼等),但您不會受到SQL注入的攻擊。

+0

奇數...對此答案的編輯變成了新答案。 –

1

動態LINQ自動防止SQL注入攻擊,即使你使用,使得沒有任何輸入字符串包含的Request.QueryString等

您可以添加非常基本的檢查你自己的層建立你的論點「;」字符,它通常用於SQL注入以允許輸入自定義SQL查詢。

另請參閱http://www.codeproject.com/KB/database/SqlInjectionAttacks.aspx

+0

只是一個「快速失敗」的措施;您可以立即拒絕這些輸入字符串,而不是鏈接。 –

+3

但爲什麼拒絕他們呢?簡單地使用分號並不代表惡意行爲。如果輸入不需要*消毒,爲什麼對用戶施加任意限制? –

+0

我同意@Adam,但是如果您要掃描惡意輸入,是不是會查找單引號呢? –