ibtais 동적쿼리 "$" 보안취약성
- 작성자 :
- 이*석
- 작성일 :
- 2015-02-13 18:53:20
- 조회수 :
- 1,225
- 구분 :
- 기타
- 진행상태 :
- 완료
Q
안녕하세요 국유재산통합관리시스템 담당자 이정석입니다.
이번에 국유재산업무 관련해서 소스코드 취약성 사이버안전센터에서 점검을 받았는데요
본문내용중 일부입니다.
------------------------------------------------------------------------------------------------------------------------------
mybatis data map의 경우 외부에서 입력되는 값이 SQL질의문에 연결하는 문자열로 사용될 경우 의도하지 않은 정보가
노출될수 있습니다. 다음과 같이 $subCond$로 전달되는 값을 #subCond#형태로 수정을 하여야 합니다...
<isNotEmpty property="subCond" prepend="AND" >
$subCond$
</isNotEmpty>
---------------------------------------------------------------------------------------------------------------------------------
$subCond$부분은 String형태로 쿼리를 받는부분인데 당연히 #subCond#로 고치면 문제가 생길거 같습니다.
이부분을 원할하게 고칠수 있는 방법이 있을까요?
그리고 "$" 사용하는부분이 표준프레임워크의 표준인지
맞다면 근거 자료가 있는지 확인부탁드립니다.
이번에 국유재산업무 관련해서 소스코드 취약성 사이버안전센터에서 점검을 받았는데요
본문내용중 일부입니다.
------------------------------------------------------------------------------------------------------------------------------
mybatis data map의 경우 외부에서 입력되는 값이 SQL질의문에 연결하는 문자열로 사용될 경우 의도하지 않은 정보가
노출될수 있습니다. 다음과 같이 $subCond$로 전달되는 값을 #subCond#형태로 수정을 하여야 합니다...
<isNotEmpty property="subCond" prepend="AND" >
$subCond$
</isNotEmpty>
---------------------------------------------------------------------------------------------------------------------------------
$subCond$부분은 String형태로 쿼리를 받는부분인데 당연히 #subCond#로 고치면 문제가 생길거 같습니다.
이부분을 원할하게 고칠수 있는 방법이 있을까요?
그리고 "$" 사용하는부분이 표준프레임워크의 표준인지
맞다면 근거 자료가 있는지 확인부탁드립니다.
A
안녕하세요. 이정석님.
보안 점검 내용처럼 #..# 대신 $..$를 사용하는 것은 보안 상에 문제가 있습니다. (처리 상의 성능 저하도 발생할 수 있음)
해당 부분에 대하여 원할하게 수정할 수 있는 방법은 없는 것 같습니다.
추가적으로 표준프레임워크 상의 표준 또한 #..# 방식을 사용하도록 되어 있습니다.
공통컴포넌트의 일부 DBMS의 경우 select 컬럼에 #..#를 사용하지 못하는 문제가 있는 경우만 제한적으로 $..$가 사용되었으며,
이 경우 Controller 부분에서 보안 상의 문제가 없도록 파라미터에 대한 점검을 수행하여 KISA 보안 점검을 받았습니다.
그럼, 즐거운 하루되십시오.
감사합니다.
보안 점검 내용처럼 #..# 대신 $..$를 사용하는 것은 보안 상에 문제가 있습니다. (처리 상의 성능 저하도 발생할 수 있음)
해당 부분에 대하여 원할하게 수정할 수 있는 방법은 없는 것 같습니다.
추가적으로 표준프레임워크 상의 표준 또한 #..# 방식을 사용하도록 되어 있습니다.
공통컴포넌트의 일부 DBMS의 경우 select 컬럼에 #..#를 사용하지 못하는 문제가 있는 경우만 제한적으로 $..$가 사용되었으며,
이 경우 Controller 부분에서 보안 상의 문제가 없도록 파라미터에 대한 점검을 수행하여 KISA 보안 점검을 받았습니다.
그럼, 즐거운 하루되십시오.
감사합니다.