实体框架4.1 SQL注入

时间:2012-08-14 10:59:38

标签: entity-framework-4.1 sql-injection

我正在使用Entity Framework 4.1开发ASP.Net MVC 3应用程序。对于其中一个查询,我正在利用 DbSet 类上的 SqlQuery 方法,这使我能够执行返回实体列表的原始SQL查询。

我的Service类中有一个方法,见下文,我在那里编写原始sql并传入两个参数, shiftID shiftDateID

public IList<User> GetAvailableLocums(int shiftID, int shiftDateID)
{
   var query = @"set language 'British'

   SELECT   *
   FROM     [Shift]
   WHERE    shiftID = @p0
   AND      shiftDateID = @p1";

   return _UoW.User.GetWithRawSql(query, shiftID, shiftDateID).ToList();

}

然后我在我的Repository类中调用以下方法,见下文,

public IEnumerable<TEntity> GetWithRawSql(string query, params object[] parameters)
{
     return dbSet.SqlQuery(query, parameters).ToList();
}

我担心这可能会对SQL注入攻击开放。如果是这样,有谁知道如何参数化我的两个参数?

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

你见过这个http://msdn.microsoft.com/en-us/library/bb738521.aspx吗?第二个代码块..