2016-06-15 118 views
0

我正在開發ASP.NET MVC C#上的SaaS應用程序,我很好奇如果使用存儲過程/函數防止SQL注入和xsxx攻擊?我想對用戶輸入的數據進行某種消毒,但我不知道他們最好的方式是什麼。使用存儲過程是否防止SQL注入/ XSXX攻擊?

如果我需要做一些數據清理,那麼最好的方法是什麼?

回答

0

您應該使用參數化查詢,方法是使用SqlCommand並將適當的參數添加到適當的連接。這將防止SQL注入。不能保證所有途徑都受到保護,例如,如果您使用用戶字符串中的sp_executesql

SQL注入和XSS攻擊是不同的問題。

+0

因此,我不需要做任何正面擦洗?只要我使用參數和適當的sprocs,我從sql注入保護? – James

+0

是的,但它不能解決XSS,這完全是一個單獨的問題。 –

0

這取決於

  1. SQL注入:避免動態SQL中的存儲過程作爲其脆弱,可以使用SQL注入攻擊被濫用,如果無法避免使用sp_executesql(正如丹尼爾的答覆中提到) Better Way

  2. XSS:對於舊版本的MVC(ASPX視圖引擎的)總是使用<%: ... %>與Html.Encode()相同。對於@Razor View,@model.something默認情況下會自動編碼,除非您特別使用HTML.RawNice Read