VO객체 사용, Mybatis foreach
- 작성자 :
- 김*영
- 작성일 :
- 2020-08-05 17:58:26
- 조회수 :
- 3,530
- 구분 :
- 기타
- 진행상태 :
- 완료
Q
안녕하세요.
전자정부프레임워크로 개발을 진행중입니다.
다름이 아니라 Mybatis 에서 parameterType를 아래와 같이 VO로 선언을 했습니다.
<select id="aa" parameterType="egov.TestVO" resultType="egovMap>
TestVO 에는 String[] , ArrayList 에 get set을 만들고 java에서 데이터 셋팅후 쿼리를 호출하고 있는데 foreach에서는 #{객체} 로 받아지지 않고 오류가 발생합니다. 단, ${객체} 는 정상적으로 셋팅이 되고요.
소스취약점 점검등에서 Mybatis 에 $ 를 사용하는 것에 대한 체크가 되어 # 으로 변경을 해야하는데 VO를 사용한다면 어떻게 해야하는지 문의드립니다.
전자정부프레임워크로 개발을 진행중입니다.
다름이 아니라 Mybatis 에서 parameterType를 아래와 같이 VO로 선언을 했습니다.
<select id="aa" parameterType="egov.TestVO" resultType="egovMap>
TestVO 에는 String[] , ArrayList 에 get set을 만들고 java에서 데이터 셋팅후 쿼리를 호출하고 있는데 foreach에서는 #{객체} 로 받아지지 않고 오류가 발생합니다. 단, ${객체} 는 정상적으로 셋팅이 되고요.
소스취약점 점검등에서 Mybatis 에 $ 를 사용하는 것에 대한 체크가 되어 # 으로 변경을 해야하는데 VO를 사용한다면 어떻게 해야하는지 문의드립니다.
A
안녕하세요.
표준프레임워크센터 입니다.
Mybatis에서 $를 사용하시면
다양한 조합이 가능하기 때문에 보안에 문제가 되는것은 맞습니다.
따라서 반드시 #를 사용하셔야 합니다.
다만, #를 사용하시면 다이나믹 쿼리 사용시 제한이 많이 발생할수 있습니다.
$기호를 사용할때 괜찬았는데
#기호에서는 문제가 된다고 하신것은
그런 원인일듯 합니다.
다음 mybatis.org 안내페이지에서
동적쿼리에 대한 안내를 참조하셔야 할듯 합니다.
https://mybatis.org/mybatis-3/ko/dynamic-sql.html
감사합니다.
표준프레임워크센터 입니다.
Mybatis에서 $를 사용하시면
다양한 조합이 가능하기 때문에 보안에 문제가 되는것은 맞습니다.
따라서 반드시 #를 사용하셔야 합니다.
다만, #를 사용하시면 다이나믹 쿼리 사용시 제한이 많이 발생할수 있습니다.
$기호를 사용할때 괜찬았는데
#기호에서는 문제가 된다고 하신것은
그런 원인일듯 합니다.
다음 mybatis.org 안내페이지에서
동적쿼리에 대한 안내를 참조하셔야 할듯 합니다.
https://mybatis.org/mybatis-3/ko/dynamic-sql.html
감사합니다.