2015-01-08 1 views
2

OrientDB-NET.binary을 사용하여 OrientDb 프로그래밍시 SQL 주입을 방지하려면 어떻게합니까? Orient-SQL의 특수 문자를 이스케이프하고 문자열 리터럴을 사용하는 방법이 있습니까?OrientDb SQL 주입 및 이스케이프 문자

예 : me' or 1 = 1),'// 다음

select from MyVertex where text = '...' 

나는 문제가 너무 OrientDb 스튜디오에서이 일을하는 데 문제처럼 조회 수 :이 문자를 저장할.

Java 드라이버와 관련된 this post을 찾았으므로 .NET과 비슷한 것이 있는지 궁금합니다.

답변

0

You need to use parameterized queries.

데이터으로 구분되는 쿼리로 SQL 주입의 근본적인 문제입니다.

C#에서

의 OrientDB-NET 바이너리를 사용하여, 당신은 OrientDB-NET wiki에서 적응이 같은 (하고 싶은 :

using (ODatabase database = new ODatabase("yourDatabase")) 
{ 
    PreparedQuery query = new PreparedQuery("SELECT FROM MyVertex WHERE text = ?"); 
    var selectedValue = database 
     .Query(query) 
     .Run([***Your Input Here***]) 
     .SingleOrDefault(); 

    var text = selectedValue.GetField<string>("text"); 
} 

당신은 더 많은 예제를 볼 수 PreparedQuery에 대한 OrientDB-NET unit tests을 확인할 수 있습니다을 어떻게 수도 이 작업을 수행하십시오.