시큐어 코딩 - springboot mybatis ${} 에 꼭 사용할려면???
- 작성자 :
- 개*자
- 작성일 :
- 2021-07-26 10:10:01
- 조회수 :
- 5,318
- 구분 :
- 운영환경 /
- 진행상태 :
- 완료
Q
안녕하세요..
현재 전자정부 프레임워크를 이용하여 개발중인데, 소스코드 진단에서 mybatis에서 ${} 를 사용한다고 보안약점으로 지적이 되었습니다.
가이드에서는 mybatis #{}을 사용하라고 하지만, 프로젝트 성격상 mybatis ${}가 꼭 필요한 상황입니다.
동적으로 사용자가 접속하기 때문에 꼭 필요한 부분입니다.
현재 작업방법은 mybatis ${} 동적 호출시 필터를 만들어서 SQL Injection에 관련된 키워드를 필터하여 호출하게 작성중입니다.
이 방법이 올바른 방향인지와 또 다른 방법이 있는지 알려주시면 감사하겠습니다.
mybatis ${} 동적 호출이 필요한 경우에 대한 보안 가이드는 없는것 같습니다. 이러한 경우 어떻게 해야 시큐어 코딩 가이드를 지키면서 mybatis ${} 를 동적으로 사용할 수 있는지 알려주시면 감사하겠습니다.
그럼.
현재 전자정부 프레임워크를 이용하여 개발중인데, 소스코드 진단에서 mybatis에서 ${} 를 사용한다고 보안약점으로 지적이 되었습니다.
가이드에서는 mybatis #{}을 사용하라고 하지만, 프로젝트 성격상 mybatis ${}가 꼭 필요한 상황입니다.
동적으로 사용자가 접속하기 때문에 꼭 필요한 부분입니다.
현재 작업방법은 mybatis ${} 동적 호출시 필터를 만들어서 SQL Injection에 관련된 키워드를 필터하여 호출하게 작성중입니다.
이 방법이 올바른 방향인지와 또 다른 방법이 있는지 알려주시면 감사하겠습니다.
mybatis ${} 동적 호출이 필요한 경우에 대한 보안 가이드는 없는것 같습니다. 이러한 경우 어떻게 해야 시큐어 코딩 가이드를 지키면서 mybatis ${} 를 동적으로 사용할 수 있는지 알려주시면 감사하겠습니다.
그럼.
환경정보
-
- OS 정보 : Centos7
- 표준프레임워크 버전 : eGovFrameDev-3.9.0-64bit
- JDK(JRE) 정보 : openjdk-1.8.0.181
- WAS 정보 : tomcat-9.0.36
- DB 정보 : Mariadb10
- 기타 환경 정보 :
A
안녕하세요.
표준프레임워크센터 입니다.
보안상의 이유로
mybatis에서 ${}를 사용하지 않는것이 맞습니다.
부득이한 경우는 SQL 인젝션이 발생하지 않도록
필터 처리를 하여야 할것으로 판단됩니다.
다만 이경우에서 다양한 케이스가 발생할수 있으므로
해당 부분이 필터처리로 보완이 가능한지 여부도
확인이 필요할 것으로 예상됩니다.
필터처리를 하였다 하여도
다양한 케이스가 발생할수 있으니
보완한 부분에 대한 적성성에 대하여
점검 기관 또는 업체와 협의가 필요할것으로 예상됩니다.
감사합니다.
표준프레임워크센터 입니다.
보안상의 이유로
mybatis에서 ${}를 사용하지 않는것이 맞습니다.
부득이한 경우는 SQL 인젝션이 발생하지 않도록
필터 처리를 하여야 할것으로 판단됩니다.
다만 이경우에서 다양한 케이스가 발생할수 있으므로
해당 부분이 필터처리로 보완이 가능한지 여부도
확인이 필요할 것으로 예상됩니다.
필터처리를 하였다 하여도
다양한 케이스가 발생할수 있으니
보완한 부분에 대한 적성성에 대하여
점검 기관 또는 업체와 협의가 필요할것으로 예상됩니다.
감사합니다.