2009-12-29 7 views
1

확인 내가이 경로를 사용에 관한SQL 주입

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

URL이 보이는 http://localhost/Catalog/Computer/Harddrives/internal

데이터 beening 같은 컴퓨터/하드 드라이브가 2 개이고/내부 부분

내가 떨어져 분할 및 경로를 확인 여기 내 우려 사항은, atm 나는 SQL 주입을 확인하지 않습니다

나는 경로를 확인하여 이 함수

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

으로 enitity 프레임 워크를 사용하여 데이터베이스로부터 장르 제가 이와 SQL 인젝션 걱정 하는가?

답변

7

Linq2Sql과 Entity Framework는 SQL 매개 변수 (한쪽 끝을 제외하고)를 사용하므로 문제가 없습니다.

사실 당신은 CategorySet에 대해 Linq를 사용하고 있고 linq은이 경우 로컬로 실행되므로 데이터베이스를 만지는 CategorySet이므로 where 제약 조건은 (내가 믿는) 후에 실행됩니다. 이 경우에도 문제는 없습니다.

+0

너무 빨리 답변 해 주셔서 감사합니다. – Eric

+0

한 쪽 케이스는 무엇입니까? –

+1

Linq2Sql에 ExecuteQuery가 있습니다. 이것은 원시 쿼리를 실행합니다. 따라서 문자열 연결로 쿼리를 순진하게 작성한 경우 주입 된 문자열을 전달할 수 있습니다. – blowdart