DBIO Basic

DBIO Basic Rule Set

1. SqlInjection

SQL 에 포함된 ${name} 형태의 치환열으로 인해 검증되지 않은 SQL 이 실행될 수 있는 위험이 생깁니다. ${name} 형태의 치환열은 사용해서는 안됩니다.

1 .우선순위: High

2 .심각도: 에러

3 .예시

                올바른 예)
                SELECT
                       A.FEDU_DEPT_NO AS feduDeptNo,
                       A.FEDU_DEPT_NM AS feduDeptNm,
                       A.FEDU_ADR_CTNT AS feduAdrCtnt
                  FROM SMP_DEPT_TST A
                WHERE A.FEDU_DEPT_NO = #{feduDeptNo}

                올바르지 못한 예)
                SELECT
                       A.FEDU_DEPT_NO AS feduDeptNo,
                       A.FEDU_DEPT_NM AS feduDeptNm,
                       A.FEDU_ADR_CTNT AS feduAdrCtnt
                  FROM SMP_DEPT_TST A
                WHERE A.FEDU_DEPT_NO = ${feduDeptNo}

2. ProhibitedKeywords

사용을 금지할 키워드를 등록합니다.

1 .우선순위: High

2 .심각도: 에러

3 .예시

4 .옵션

속성

dbio.prohibitedKeywords

기본값

설명

사용을 금지할 키워드를 등록합니다.

속성

dbio.specialCharacters

기본값

설명

사용을 금지할 키워드를 등록합니다.

3. RestrictDynamicSqlRule

동적 쿼리 사용을 제한합니다.

1 .우선순위: High

2 .심각도: 에러

3 .예시

                올바른 예)
                SELECT * FROM EMPLOYEE
                 WHERE 1=1
                     AND NAME LIKE '%' || #{keyword} || '%'
                     AND GENDER = #{gender}

                올바르지 못한 예)
                <select id="search" resultMap="searchVo">
                      SELECT * FROM EMPLOYEE WHERE 1=1
                      <if test="searchType != null and searchType != ''">
                          AND NAME LIKE '%' || #{keyword} || '%'
                      </if>
                      <if test="gender != null and gender != ''">
                          AND GENDER = #{gender}
                      </if>
                </select>

4 .옵션

속성

dbio.allowed.dynamic.sql

기본값

false

설명

동적 쿼리 사용을 허용 옵션입니다.

Copyright© Bankwareglobal All Rights Reserved.