2013-05-11 2 views
0

나는 백 엔드와 스프링을 프레임 워크로 사용하고있다. 스프링이 인젝션을 지원하지 않는다는 것은 데이터베이스가 안전하고 MySQL에서 인젝션을 처리 할 필요가 없다는 것을 안다. ?스프링과 mysql을 사용할 때

+0

당신은 SQL 인젝션을 의미합니까? 봄 지원 콩 주입으로 주입? –

+0

예 SQL 주입. 만약 spring이 injection을 지원한다면, mysql은 injection을 지원 하는가? 그렇다면, mysql 데이터베이스에서 주입을 처리 할 수 ​​있습니까? 아니면 스프링을 통해 수행해야합니까? –

+0

[Spring (MVC) SQL injection avoidance?] 가능한 복제본?] (http://stackoverflow.com/questions/8472608/spring-mvc-sql-injection-avoidance) – tadman

답변

0

SQL injection은 분명히 피하고 싶은 무언가입니다. 데이터베이스 나 프레임 워크가 지원하는 것이 아닙니다. 그것은 공격입니다. 당신이 피하고 싶은 것. 그리고 그것은 어떤 틀에 의해서도 해결되지 않을 것입니다.

SQL 주입 공격이 무엇인지 언제 발생할 수 있는지 이해해야하며이를 피하기 위해 코딩의 좋은 습관을 채택해야합니다. 항상 prepared statements을 사용하고 신뢰할 수없는 출처에서 오는 값을 추가하여 동적으로 SQL 쿼리를 만들지 마십시오. 대신

String sql = "select a, b from some_table where d = '" + valueEnteredByUser + "'"; 

는 다음과 같이 일을 한마디로

:

String sql = "select a, b from some_table where d = ?" 

한 다음 준비된 문을 생성하고 쿼리 매개 변수에 valueEnteredByUser을 결합한다.

간단합니다.

관련 문제