본문 바로가기
📔개발자 일기 | | TIL

[20220604] 개발자 일기

by 캔 2022. 6. 4.

오랜만에 개발자 일기를 써본다. 한동안 일기를 쓰지 않았는데 일기 또는 TIL을 매일 쓰니까 글 자체가 질이 떨어지고 하루 동안 배운 양이 얼마 되지 않는데 쓰려니까 글 내용도 적어지는 것 같아서 방식을 바꾸려고 했기 때문이다. 앞으로는 개발자 일기는 주 1회 정도로 쓰고 공부한 내용은 정리해서 완성된 글로 작성한다.

 

최근에 공부하고 있는 방식은 웹 개발에 대한 개념들을 천천히 곱씹어보면서 생각나는 것들을 계속 찾아보고 정리하는 것이다. 그러고 나서 쓴 글이 '자바 EE에서 스프링 프레임으로'와 '스프링 프레임워크를 쓰는 이유'였다. 웹 개발을 하고 있지만 아직 모르는 것이 너무 많다. 안다고 생각하고 있는 개념도 사실은 모르고 있는 경우도 있고 계속해서 다른 것들을 공부하다 보니 점점 기억 속에서 잊혀 간 것들도 있다. 앞으로도 이런 식으로 웹 개발 개념들에 대해 스스로 질문을 던져 보면서 글을 정리해보고 어느 정도 마무리가 되면 스프링이나 자바 프로그래밍을 본격적으로 공부하기 시작해야 할 것 같다.

 

저번 주 주말에 web.xml을 찾아보다가 회사의 보안 취약점을 발견하고 출근해서 다른 팀원들과 수정 작업을 수행했다. web.xml을 WEB-INF 폴더에 들어있는 파일로서, WEB-INF 폴더가 접근이 가능하다는 것은 그 이하에 있는 클래스 파일들이나 라이브러리 파일에도 접근이 가능하다는 것이다. WEB-INF 폴더는 기본적으로 톰캣 같은 서블릿 컨테이너가 접근을 막아 둔다. 거의 모든 자바 웹 개발자들은 이 사실을 알 것이다. 이 취약점은 WEB-INF가 접근 가능해서 폴더를 막아야 한다는 OKKY 글을 보다가 발견했는데(https://okky.kr/article/27983) 다른 사용자들도 WEB-INF에 어떻게 접근 가능한지 의아해하다가 아파치와 톰캣을 연동해서 사용한다면 가능성이 있다고 해서 회사에서 운영 중인 서버에도 시도를 해봤는데 성공해버려서 월요일 아침부터 보안 조치를 하고 있었다.

 

원인에 대해서 간략하게 설명해보자면, 톰캣은 WEB-INF 폴더를 외부에서 URL로 접근하는 것을 분명히 막는다. 그러나 정적인 페이지와 동적인 페이지를 구분해서 좀 더 빠르게 서비스를 제공할 목적으로 웹서버인 아파치와 WAS인 톰캣을 연동하여 사용하는 경우 사용자가 서버에 요청을 보내면 웹 서버가 응답을 먼저 받는다. 그 이후에 WAS의 처리가 필요한 URL은 톰캣으로 요청을 보내서 응답을 보낸다. 이때 URL이 가리키는 디렉터리가 파일인 경우 웹 서버가 정적인 페이지 요청으로 인식해 파일의 내용을 응답으로 보내준다. 그렇기 때문에 WEB-INF 안에 있는 정적인 파일을 요청할 경우 친절하게도 파일을 열어서 그 내용을 보여준다. 따라서, 웹 서버와 WAS 연동 시에는 반드시 웹서버에서 WAS의 보안 폴더들을 차단할 수 있도록 해야 한다. 아파치의 경우, WAS 연동 시 httpd.conf 설정을 반드시 변경해주도록 하자.

'📔개발자 일기 | | TIL' 카테고리의 다른 글

[20220619] 개발자 일기  (0) 2022.06.19
[20220612] 개발자 일기  (0) 2022.06.12
[20220521] 개발자 일기 & TIL  (0) 2022.05.21
[20220511] 개발자 일기 & TIL  (0) 2022.05.11
[20220510] TIL  (0) 2022.05.10