我正在開發ASP.NET MVC C#上的SaaS應用程序,我很好奇如果使用存儲過程/函數防止SQL注入和xsxx攻擊?我想對用戶輸入的數據進行某種消毒,但我不知道他們最好的方式是什麼。使用存儲過程是否防止SQL注入/ XSXX攻擊?
如果我需要做一些數據清理,那麼最好的方法是什麼?
我正在開發ASP.NET MVC C#上的SaaS應用程序,我很好奇如果使用存儲過程/函數防止SQL注入和xsxx攻擊?我想對用戶輸入的數據進行某種消毒,但我不知道他們最好的方式是什麼。使用存儲過程是否防止SQL注入/ XSXX攻擊?
如果我需要做一些數據清理,那麼最好的方法是什麼?
否。
您應該使用參數化查詢,方法是使用SqlCommand
並將適當的參數添加到適當的連接。這將防止SQL注入。不能保證所有途徑都受到保護,例如,如果您使用用戶字符串中的sp_executesql
。
SQL注入和XSS攻擊是不同的問題。
這取決於
SQL注入:避免動態SQL中的存儲過程作爲其脆弱,可以使用SQL注入攻擊被濫用,如果無法避免使用sp_executesql
(正如丹尼爾的答覆中提到) Better Way
XSS:對於舊版本的MVC(ASPX視圖引擎的)總是使用<%: ... %>
與Html.Encode()相同。對於@Razor View,@model.something
默認情況下會自動編碼,除非您特別使用HTML.Raw
。 Nice Read
因此,我不需要做任何正面擦洗?只要我使用參數和適當的sprocs,我從sql注入保護? – James
是的,但它不能解決XSS,這完全是一個單獨的問題。 –