1

说我有这门课:

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字符串来阻止对我的数据库的任何有害尝试,这样如果小丑试图获取所有*DELETEMyObjects,我的应用程序就不会崩溃。我正在使用 MVC 4。有什么办法吗?

4

2 回答 2

6

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

自己试试看。

于 2013-07-02T19:47:03.740 回答
3

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

于 2013-07-02T19:47:20.643 回答