SQL注入问题

时间:2009-12-29 10:18:33

标签: asp.net asp.net-mvc entity-framework sql-injection

好吧,我使用这条路线

routes.MapRoute(
            "Catalog/Data",
            "Catalog/{*data}",
            new { controller = "Catalog", action = "Category", data = "" }
            );

网址看起来像http://localhost/Catalog/Computer/Harddrives/internal

数据在计算机/硬盘/内部部件

我把它分开并验证路线 这是我担心的地方,atm我不检查sql注入

我通过使用enitity框架从数据库中获取类别来检查路由 有了这个功能

public Category GetByRoute(string Route)
    {
        return (from c in XEntity.CategorySet
                    .Where(c => c.Route == Route)
                    .Where(c => c.IsEnabled == true)
                select c).FirstOrDefault();
    }

我应该担心sql注入吗?

1 个答案:

答案 0 :(得分:7)

Linq2Sql和实体框架使用SQL参数(除了一个边缘情况),所以你会没事的。

在你的情况下,你实际上是使用Linq而不是CategorySet,在这种情况下linq是在本地执行的,所以它是触及数据库的CategorySet,后面的约束运行(我相信)。在这种情况下,再没有问题。