안경잡이개발자

728x90
반응형

  흔히 웹 서버 프로그램을 개발할 때 가장 중요한 것은 보안입니다. 저는 개발을 할 때 보안성을 강화하는 모듈화 방법에 대해서 많이 고민합니다. 예를 들어 특정한 소스코드를 깃 허브(Git Hub)에 올리고 있는 상황에서, 데이터베이스 연결 구문 등을 작성하고자 할 때 데이터베이스 연동 구문에는 데이터베이스의 ID와 비밀번호가 그대로 노출이 될 텐데 그걸 그대로 깃 허브로 푸시(Push) 하지는 않겠죠? 이럴 때 사용하는 것이 바로 파일에서부터 데이터베이스 관련 정보를 불러오도록 하는 것입니다.


  파일에서부터 데이터베이스 관련 정보를 불러오도록 하면 웹 쉘 업로드 공격이 들어오지 않는 이상 데이터베이스 관련 정보를 노출당할 일이 없고, 데이터베이스 또한 적절하게 권한 분리를 함으로써 웹 서버에서 접근할 수 있는 데이터베이스 영역을 잘 관리한다면 상당히 보안성이 높아집니다. (물론 웹 서버를 Root 권한으로 돌리거나, 데이터베이스 또한 Root 권한으로 접속하도록 개발된 서버라면 웹 쉘 한 방에 초전 박살날 수 있습니다.)


  아무튼 카페 24와 같은 호스팅 서비스를 이용할 때 파일에서부터 데이터베이스 관련 정보를 읽어 처리하는 방법에 대해 알려드리고자 합니다.



  먼저 위와 같이 현재의 컨텍스트 경로를 출력하도록 하는 JSP 프로그램을 작성해서 호스팅 서버에 올립니다.


  실행 결과 위와 같이 리눅스 경로가 출력되는 것을 알 수 있어요. 제 루트 디렉토리는 바로 위와 같다고 할 수 있습니다.



  이제 한번 루트 디렉토리의 바로 부모 폴더로 가서 file이라는 폴더를 만들어줍니다. 이제 정상적인 사용자들이 이 경로에 웹 브라우저로 접근할 수 없습니다.



  이제 위와 같이 특정한 텍스트 파일에 아이디 값을 적어서 올려볼게요.


  이제 바로 위와 같이 아까 확인했던 경로 값을 이용해 해당 파일에서 글자를 읽어 출력하도록 해봅시다.



  바로 위와 같이 성공적으로 아이디 값을 읽어온 것을 알 수 있습니다. 그럼 즐거운 시큐어 코딩 되세요!


728x90
반응형