2011-12-16 102 views
3

我們有一個ASP.NET/C#網站。我們的開發人員在亞洲離岸,我剛剛發現他們已經在網站前端放置了原始SQL。SQL注入漏洞

我很擔心我們現在很容易受到SQL注入攻擊。有誰知道我如何檢測網站上的漏洞,以及關閉這些漏洞的最佳方式是什麼?

+1

第一件事就是從前端和後端刪除所有內聯(原始)SQL,並且只使用存儲過程將值作爲參數傳遞 – 2011-12-16 10:48:53

+0

前端在like中......在表單中作爲隱藏輸入和東西? – Corbin 2011-12-16 10:49:43

+0

是,如表單/頁面上的輸入字段 – Rup 2011-12-16 10:51:10

回答

6

試圖從正面可能幫助檢測漏洞,但真的,你應該看看代碼,尤其是所有與DbCommand,SqlCommand等有關的代碼。關鍵點,正如你清楚的知道的,絕不會把用戶輸入連接到一個查詢中,而是將它們參數化。可以使這個參數設置變得容易 - 或者至少比手動操作更容易。例如,如果您有:

using(var cmd = conn.CreateCommand()) { 
    cmd.CommandText = "delete from Orders where id = " + id; 
    cmd.ExecuteNonQuery(); 
} 

然後像短小精悍點網工具可以讓你做這樣的事情:

conn.Execute("delete from Orders where id = @id", new {id}); 

這是代碼,很大程度上是複製粘貼,而是完全注射安全,並允許查詢 - 計劃重用。

4

看一看ScrawlrAcunetix

這些工具來掃描漏洞的網站,特別是SQL注入。另一種方式是註冊一家PCI-DSS合規公司。我們使用SecurityMetrics,通常銀行爲這些提供折扣。

1

嗯,我會命令他們向您發送的源代碼並執行代碼視圖(或有一個由相對experiend開發完成。