250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 스트림
- ci/cd
- 제이쿼리그리드
- QueryDSL
- JPA
- jqGrid
- mom
- spring
- Stream
- docker
- 보안
- JQuery
- 대용량 업로드
- apache.poi
- 자바8
- Javascript
- 그리드
- DevOps
- sqlserver
- mssql
- rabbitmq
- ORM
- MessageQueue
- poi
- stream api
- 엑셀 업로드
- java
- 자동배포
- 자동빌드
- Jenkins
Archives
- Today
- Total
개발 메모장
[Tomcat] HTTP Method 접근 제약 처리 본문
728x90
#. PUT, DELETE, TRACE 메서드는 접근 제한으로 설정하는 것이 권고되고 있습니다.
#. 또한 현재 제공중인 서비스에서는 GET, POST를 사용하며 그 외 메서드는 사용하지 않고 있습니다.
#. 접근할 일도 없는 메서드를 열어 두는 것이 찝찝해서 제약사항으로 관리하도록 수정했습니다.
#. 현 상황 체크
- CMD를 통해 아래의 내용을 입력하여 현재 상태를 확인해보도록 합니다.
telnet localhost {port}
PUT / HTTP/1.0
- 먼저 telnet에 서비스 중인 도메인 + 포트를 위와 같이 입력하면 까만화면으로 바뀌게 됩니다.
- 그곳에서 아래 내용을 입력합니다.
(띄어쓰기 및 대문자로 바꾸셔서 진행하셔야 합니다.)

- 302 코드를 리턴 받습니다.
#. 해결방법
- tomcat > conf > web.xml에 아래 시큐리티 제약사항을 입력해줍니다.
- url-pattern은 모든 url에 적용하기 위해 /* 으로 해줍니다.
(특정 url만 막으려면 * 대신 원하는 url을 입력해주세요.) - http-method는 막을 메서드에 대해 작성해줍니다.
<security-constraint>
<web-resource-collection>
<web-resource-name>Restricted HTTP Methods</web-resource-name>
<url-pattern>/*</url-pattern>
<http-method>PUT</http-method>
<http-method>DELETE</http-method>
<http-method>TRACE</http-method>
</web-resource-collection>
<auth-constraint/>
</security-constraint>
- auth-contraint 태그에는 특정 역할을 가진 사용자만 액세스할 수 있도록 권한에 대한 제약을 걸 수 있습니다.
(아래 예시에 대해 설명하도록 하겠습니다.)
<security-constraint>
<web-resource-collection>
<web-resource-name>Admin Page</web-resource-name>
<url-pattern>/admin/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>ADMIN</role-name>
</auth-constraint>
</security-constraint>
- web-resource-collection 는 /admin/* 패턴에 대해서 보호합니다.
- auth-constraint 에서는 admin 역할을 가진 사용자만이 액세스 할 수 있도록 지정합니다.
- admin 역할이 없는 사용자가 /admin/* 에 액세스하려고하면 액세스를 거부합니다.
- 위와 같이 적용하고 다시 telnet으로 접근하면 아래와 같이 에러가 발생하게 됩니다.
- 해당 에러코드에 에러페이지 처리를 했다면 에러페이지 코드와 함께 400번대 오류를 리턴하는 걸 볼 수 있습니다.

===========================================================
틀린 내용이 있거나 이견 있으시면 언제든 가감 없이 말씀 부탁드립니다!
===========================================================
728x90
'WAS' 카테고리의 다른 글
[Tomcat] Tomcat 사용 시 서버정보 노출 막기 (0) | 2023.11.24 |
---|