Mybatis 에 ${} 에 대한 해결 방안
- 작성자 :
- 김*무
- 작성일 :
- 2022-01-17 14:16:06
- 조회수 :
- 3,288
- 구분 :
- 적용지원(기술지원)
- 진행상태 :
- 완료
Q
안녕하세요, 다름이 아니라 10년전쯤 제작되있던 망을 전자정부프레임워크로 전환하고 있는 사업을 하고 있습니다.
작업하던 도중에 이전 작업때부터 java로 다이나믹쿼리를 만들어 내용을 던져, 사용하고 있는 부분이 있었는데요.
mybatis에서 다이나믹쿼리를 사용할려면 xml에서 ${값} 이렇게 처리해야 싱글쿼테이션이 붙지 않아, 사용할 수 있는데 해당 방법은 sql인젝션에 매우 취약한 방법이라 시큐어코딩에 문제가 되서 검색하던 도중에 ` #{query} ` 이런식으로 처리하면 된다는게 있어서 해 보았으나, 되지 않더라구요 혹시, 해당 일에 대해서 알고 계신게 있을까 싶어 문의하게 되었습니다.
작업하던 도중에 이전 작업때부터 java로 다이나믹쿼리를 만들어 내용을 던져, 사용하고 있는 부분이 있었는데요.
mybatis에서 다이나믹쿼리를 사용할려면 xml에서 ${값} 이렇게 처리해야 싱글쿼테이션이 붙지 않아, 사용할 수 있는데 해당 방법은 sql인젝션에 매우 취약한 방법이라 시큐어코딩에 문제가 되서 검색하던 도중에 ` #{query} ` 이런식으로 처리하면 된다는게 있어서 해 보았으나, 되지 않더라구요 혹시, 해당 일에 대해서 알고 계신게 있을까 싶어 문의하게 되었습니다.
환경정보
-
- OS 정보 : 윈도우10
- 표준프레임워크 버전 : 3.10
- JDK(JRE) 정보 : 1.8
- WAS 정보 : 웹로직
- DB 정보 : 오라클
- 기타 환경 정보 : mybatis
A
안녕하세요.
표준프레임워크센터입니다.
SQL Injection 을 방지하기 위해서는
${} 대신 #{} 형태로 사용하셔야 하며
동적으로 처리되어야 하는 부분은
비즈니스 로직에서 처리되도록 구성하시기 바랍니다.
감사합니다.
표준프레임워크센터입니다.
SQL Injection 을 방지하기 위해서는
${} 대신 #{} 형태로 사용하셔야 하며
동적으로 처리되어야 하는 부분은
비즈니스 로직에서 처리되도록 구성하시기 바랍니다.
감사합니다.