[JSP] 29. 프로젝트 구성 방법 - Eclipse로 살펴보는 보안 프로젝트 구성
오랜만에 글을 작성한다.
이번에 소개할 내용은 시큐어코딩에 대해서 몇 가지 주제를 가지고 소개하려고 한다.
프로젝트 생성 방법에 대해서 몇 가지 소개하려고 한다.
장점: 정보를 보호할 수 있음.
단점: 정보를 보호하는 대신에 개발 메뉴얼 등이 요구됨.
오류가 나면, 코어 소스를 가지고 있는 인원에 대응해야 하는 한계가 있음.
* 규모가 큰 프로젝트에 적합할 수 있다.
* 갈등이 많은 작은 규모에서도 고려할 수 있다.
1. 프로젝트 생성 방법
기존의 코딩 방법과는 몇 가지 차이가 있을 수 있다.
|
|
그림 1. 프로젝트 구성의 예1) 보안이 적용된 모습 |
그림 2. 프로젝트 구성의 예2 - 보안이 적용되지 않는 모습 |
일반적인 경우라고 하면, 그림 2처럼 프로젝트를 생성하고 개발할 것이다.
그림 1의 방법으로 하면 무엇이 장점이 되는지 소개하도록 하겠다.
2. 불필요한 정보 - 은닉하기
예를 들어서 개발자가 있다고 가정하자.
개발자와 DBA의 권한은 또 한 차원 다른 문제가 된다.
불필요하게 개발자가 DBMS에 접근하여 정보를 조작하는 행위를 가급적 안 하는 것이 좋을 수 있다.
이러한 문제에 직면했을 때, 실질적인 이론 말고 코드와 프로젝트 구성으로서 어떻게 방어해야 할지 알아두면 좋을 듯싶다.
|
|
그림 3. 정보 은닉이 완료된 시큐어코드 |
그림 3은 정보 은닉이 완료된 시큐어코드이다.
무슨 이야기인지 그림 4를 살펴 보면서 소개하도록 하겠다.
|
그림 4. jar 파일로 컴파일하기 |
그림 4는 jar 파일로 공통 함수를 컴파일된 Library를 불러온 것이다.
이렇게 해버리면, 개발자는 제공된 공통함수만 가지고 코딩을 해야 하므로, "서버 계정", "DB 정보" 등 불필요한 요소들에 대해서
접근할 필요가 없어진다.
개발자는 설계된 테이블에 대해서 SELECT, INSERT, DELETE, UPDATE 기능만 구현해주면 된다.
물론 이게 전부 시큐어코딩이라고는 볼 수 없다. 해독하는 프로그램도 종종 있을 수 있기 때문이다.
다만, 정보 노출을 최소화하는 역할을 한다고 보면 된다.
3. 사용 방법(Jar - Export하기)
"Dodo_SmartCoreWeb" 프로젝트를 마우스 오른쪽 버튼을 누른다.
"Export"를 클릭한다.
|
그림 5. Export 하기 |
그리고 Jar 파일로 Export할 대상을 선택한다.
|
그림 6. Jar 파일 - Export하기 |
JAR file 경로를 "Browse"를 눌러서 지정해준 다음에 "Finish"를 누른다.
4. 사용 방법(Jar - Properties의 Java Build-Path의 Libraries에 User Libraries 등록하기)
프로젝트를 마우스 오른쪽 버튼으로 클릭한다.
그림 7. 프로젝트 속성 - Properties
프로젝트를 클릭한다.
마우스 오른쪽 버튼을 누른다.
Properties를 클릭한다.
그림 8. 프로젝트 속성 - Properties
Java Build Path를 클릭한다.
Libraries 탭을 클릭한다.
Add Library를 클릭한다.
그림 9. Add Library
User Library를 선택한다.
Next를 누른다.
그림 10. Add Library - User Libraries...
User Library를 선택한다.
Next를 누른다.
그림 11. Properties의 User Libraries
New를 클릭한다.
그림 12. New User Library
예를 들면 "HelloCore"라고 입력한다.
OK를 누른다.
그림 13. JAR Selection 모습
Add Jars를 누른다.
예를 들면, SmartWorkJar.jar를 선택한다.
OK를 누른다.
그림 14. Preferences의 모습
등록된 HelloCore의 User Libraries 모습을 확인할 수 있다.
Apply and Close를 누른다.
그림 15. Add Library 창
HelloCore를 선택하고 Finish를 누른다.
그림 16. Java Build Path에 등록된 Hello Core
Java Build Path에 등록된 "HelloCore"를 살펴볼 수 있다.
5. 기대효과
불필요한 소스 코드를 줄이고, 개발자, 관리자, DBA 등 업무 분담 형태의 개발을 구성할 수 있다.
물론, 보안코드를 요구하는 곳에는 이런 형태로 구성할 수 있다.
'소프트웨어(SW) > JSP' 카테고리의 다른 글
[JSP] 28. Maven (Jaxb-runtime, activation, Jaxb Api, JSTL)을 활용한 XML 생성하기 (175) | 2020.10.11 |
---|---|
[JSP] 27. Java 스타일의 트랜젝션 구현하기(은행 계좌) (155) | 2020.10.09 |
[JSP] 26. JSP/Servlet - InvocationHandler와 Proxy를 이용하여 관점 구현하기 (157) | 2020.10.04 |
[JSP] 25. jQuery와 Ajax 멀티 파일 업로드(개선), POST전송, JSON - 구성하기(2) (157) | 2020.10.03 |
[JSP] 24. jQuery와 Ajax 멀티 파일 업로드(개선), POST전송, JSON - 구성하기(1) (119) | 2020.10.03 |