본문 바로가기
IT

<IT_SQL> $ 쿼리 교체 ( 달러 case 문으로 교체 )

by 달남 2019. 12. 16.

$가 쿼리에 사용되면 해킹의 위험이 있으므로 모두 변경되어야 한다.

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>

위와 같은 방법은 다국어를 급하게 처리할때 다국어 컬럼을 만들어서 그렇다

다국어는 다국어 테이블을 별로로 만들어서 처리하는것이 좋다.

댓글