好吧,我使用这条路线
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注入吗?
答案 0 :(得分:7)
Linq2Sql和实体框架使用SQL参数(除了一个边缘情况),所以你会没事的。
在你的情况下,你实际上是使用Linq而不是CategorySet,在这种情况下linq是在本地执行的,所以它是触及数据库的CategorySet,后面的约束运行(我相信)。在这种情况下,再没有问题。