GS인증 보안성 결함 중 , jsp 파일에서 <script>
태그를 통해 라이브러리를 불러오는데
해당 경로에 대한 직접 접근을 막으라는 지적을 받았다.
처음에는 스프링 시큐리티를 이용해서 접근을 막으려고 했는데, jsp 파일에서 라이브러리 파일 접근을 못 해서 화면이 보이질 않았다...
<script>
태그를 통한 접근이나 Ajax 요청은 허용하고, 사용자가 직접 URL로 접근하는 방법은 막아야 하는데.. 🙄
결과적으로 Filter
와 HTTP 헤더값을 이용하여 문제를 해결했다.
회사에 연차 높은 웹 개발자가 없어서 이 방법이 맞는지 확실하지 않지만... 더 확실한 방법이 있는지 연구를 해봐야겠다..
HttpServletRequest httpRequest = (HttpServletRequest) req;
String refererHeader = httpRequest.getHeader("Referer");
💡 URL을 직접 주소창에 입력하여 접근하는 경우에는 이전에 방문한 웹 페이지가 없기 때문에 Referer 헤더 값이 없거나 null이다
String requestedWithHeader = httpRequest.getHeader("X-Requested-With");
boolean isAjaxRequest = "XMLHttpRequest".equals(requestedWithHeader);
출처
웹프로그래밍 리퍼러(referer)|작성자 헬리코
HTTP referer 란?
[Web] HTTP Referer 헤더 정보 사용 방법( 사이트 유입 분석 )