防止对字符串的数据库进行有害调用

时间:2013-07-02 19:44:59

标签: c# asp.net-mvc database entity-framework

说我有这个班:

public class MyObject
{
    public string Name { get;set;}
}

当进行db调用以查看是否有任何带有名称的项目时,我这样做:

public List<MyObject> ListObjectsByName(string _myObject)
{
    var objectQry = from object in db.MyObject
            where object.Name == _myObject
            select object;

    if(!objectQry.Any())
    {
        return null;
    }

    return objectQry.ToList();
}

我想通过解析_myObject字符串来阻止对我的数据库的任何有害尝试,这样如果小丑试图获取所有*DELETE MyObjects,我的应用程序将不会崩溃。我正在使用MVC 4.有没有办法做到这一点?

2 个答案:

答案 0 :(得分:6)

这不是问题。实体框架不只是将字符串放入查询的中间。字符串中的内容无关紧要。不会有SQL注入攻击。

亲自尝试看看。

答案 1 :(得分:3)

LINQ可防止SQL注入(您试图阻止的内容)。这个问题应该回答您的所有问题:Will using LINQ to SQL help prevent SQL injection