$가 쿼리에 사용되면 해킹의 위험이 있으므로 모두 변경되어야 한다.
1. 원문
<if test=" schlFullNm !='' and schlFullNm != null ">
AND A.LST_${COLUMLAUNG}_SCHL_NM LIKE '%'||#{schlFullNm}||'%'
</if>
2. 수정문 아래와 같이 choose 문으로 수정하면 됩니다.
<if test=" schlFullNm !='' and schlFullNm != null ">
<choose>
<when test="COLUMLAUNG eq 'ENG'">
AND A.LST_ENG_SCHL_NM LIKE '%'||#{schlFullNm}||'%'
</when>
<when test="COLUMLAUNG eq 'CHS'">
AND A.LST_CHS_SCHL_NM LIKE '%'||#{schlFullNm}||'%'
</when>
<otherwise>
AND A.LST_KOR_SCHL_NM LIKE '%'||#{schlFullNm}||'%'
</otherwise>
</choose>
</if>
위와 같은 방법은 다국어를 급하게 처리할때 다국어 컬럼을 만들어서 그렇다
다국어는 다국어 테이블을 별로로 만들어서 처리하는것이 좋다.
'IT' 카테고리의 다른 글
<IT> L4/L7 스위치의 대안, 오픈 소스 로드 밸런서 HAProxy (0) | 2019.12.19 |
---|---|
비즈니스아키텍쳐(BA), 데이터아키텍쳐(DA), 어플리케이션아키텍쳐(AA), 테크닉컬아키텍쳐(TA) (0) | 2019.12.16 |
<IT_SQL> 오라클 OVER 명령어 예제 (0) | 2019.12.16 |
<쿼리>간단히 중복제거 추가 (0) | 2019.10.07 |
<JSP> 로그인 권한 여부에 따라 특정 페이지 오픈 (0) | 2019.10.04 |
댓글