使用存储过程是否会阻止SQL注入/ XSXX攻击?

时间:2016-06-15 00:33:35

标签: c# sql asp.net sql-injection

我在ASP.NET MVC C#上开发SaaS应用程序,如果使用存储过程/函数可以防止SQL注入和xsxx攻击,我很好奇吗?我想对用户输入的数据进行某种消毒,但我不知道他们最好的方法是什么。

如果我需要进行一些数据清理,那么最好的方法是什么?

2 个答案:

答案 0 :(得分:0)

您应该使用SqlCommand并将适当的参数添加到适当的连接来使用参数化查询。这将阻止SQL注入。您无法保证所有途径都受到保护,例如,如果您使用的是用户字符串中的sp_executesql

SQL注入和XSS攻击是不同的问题。

答案 1 :(得分:0)

取决于

  1. SQL注入:避免将存储过程中的动态SQL视为易受攻击,并且可以使用SQL注入攻击进行滥用,如果不可避免地使用sp_executesql(如Daniel和#中所述) 39;答案) Better Way

  2. XSS :对于旧版本的MVC(aspx视图引擎),请始终使用与Html.Encode()相同的<%: ... %>。对于@Razor View,{{1除非您专门使用@model.something,否则默认情况下始终会自动编码。 Nice Read