我在ASP.NET MVC C#上开发SaaS应用程序,如果使用存储过程/函数可以防止SQL注入和xsxx攻击,我很好奇吗?我想对用户输入的数据进行某种消毒,但我不知道他们最好的方法是什么。
如果我需要进行一些数据清理,那么最好的方法是什么?
答案 0 :(得分:0)
否强>
您应该使用SqlCommand
并将适当的参数添加到适当的连接来使用参数化查询。这将阻止SQL注入。您无法保证所有途径都受到保护,例如,如果您使用的是用户字符串中的sp_executesql
。
SQL注入和XSS攻击是不同的问题。
答案 1 :(得分:0)
取决于
SQL注入:避免将存储过程中的动态SQL视为易受攻击,并且可以使用SQL注入攻击进行滥用,如果不可避免地使用sp_executesql
(如Daniel和#中所述) 39;答案)
Better Way
XSS :对于旧版本的MVC(aspx视图引擎),请始终使用与Html.Encode()相同的<%: ... %>
。对于@Razor View,{{1除非您专门使用@model.something
,否则默认情况下始终会自动编码。 Nice Read