티스토리 뷰

정리 노트/JSP

11주차-5일

eyoadgkn 2023. 12. 23. 22:14

 

시큐리티 시큐리티는 허가된 사용자만이 특정 웹 페이지에 접근할 수 있도록 제한하는 보안 기능을 말합니다.
웹 페이지에 사용자가 접근을 할 때 JSP 컨테이너는 요청된 페이지에 보안 제약이 있는지 확인하고
사용자에게 첫번째로 인증을 요청합니다. 이때 인증에 이름과 암호를 확인하여 수행되는데, 인증이 된다면
JSP 컨테이너는 승인을 하여 두번째로 권한을 부여합니다.

시큐리티의 사용하는 이유로 사용자가 권한이 없는 데이터에 접근하는 것을 막거나 웹 공격자가 전송 데이터를
중간에 가로채는 것을 방지하는 등 중요한 역할을 합니다.
시큐리티 처리 방법 웹 애플리케이션 보안에는 두가지 방법이 있습니다.

시큐리티 처리방법 설명
선언적 시큐리티 코드 작성 없이 web.xml 파일에 보안 구성을 작성해 사용자의 인증을 수행하는 방식입니다.
프로그래밍적 시큐리티 request 내장 객체의 메서드를 통해 사용자의 권한 부여를 처리하는 프로그래밍 방식입니다.
웹 서버에 역할과 사용자 구성 tomcat-user.xml 파일을 보면 2개의 역할인 tomcat,role1 을 가지고 3개의 사용자 tomcat,both,role1 이 서로 다른 역할에
매핑됩니다. 이때 both 사용자는 2개의 역할로 tomcat, role1에 매핑됩니다.
선언적 시큐리티 처리 선언적 시큐리티는 웹 애플리케이션 배포 설명자 web.xml 파일에 보안 구성을 작성해 수행하는 방식입니다.
보안을 달성하기 위해서 별도의 코드 작성없이 web.xml 파일에 보안 구성을 작성함으로써 사용자가 웹페이지에 접근을 할 수 있게 합니다.
시큐리티 역할 설정하기 <security-role>은 웹 애플리케이션에 사용하는 역할을 나열하는 요소입니다.

<security-role>
<role-name>역할 이름</role-name>
<security-role>
*여기서 role-name 요소에 설정하는 역할 이름은 반드시 tomcat-users.xml 에 등록된 역할과 사용자여야합니다.
시큐리티 제약 사항(security constraint) 설정하기 사용자의 요청 URL 에 대한 접근 권한을 정의하는데 사용합니다.

securiry-constraint를 구성하는 하위요소
요소 설명
<web-resource-collection> 웹 자원에 대한 접근을 설정합니다.
<auth-constraint> 웹 자원에 접근할 수 있는 인증된 사용자를 설정합니다.
<user-data-constraint> 데이터 전송 시 데이터 보호를 설정합니다.
<web-resource-collection>요소

요소 설명
<web-resource-name> 웹 자원의 이름을 설정해 생략할 수 있습니다.
<url-pattern> 접근 제한을 요청할 URL 목록을 설정합니다. 자원에 대한 접근을 제한하지 않는 경우 생략할 수 있습니다.
<http-method> or <http-method-omisstion> http 메서드를 설정합니다(GET or POST)


시큐리티 인증 설정하기
시큐리티 인증은 인증 처리를 위한 로그인 페이지나 오류 페이지를 호출하는 데 사용됩니다.

login-config 요소는 security-constraint 요소에 설정된 접근 제한 자원에 사용자가 접근할 때 자원의 접근을 위한 인증
처리 방법을 활성화 하는 요소입니다.

요소 설명
<auth-method> 웹 자원에 대한 인증 처리 방식을 설정합니다.
<realm-name> 웹 자원에 접근할 수 있는 인증된 사용자를 설정합니다.
<form-login-config> 데이터 전송 시 데이터 보호를 설정합니다.
auth-method 요소는 인증 처리 기법을 설정하는 요소입니다.

종류 설명
BASIC 웹 자원을 보호하는 간단하고 일반적인 방법
DIGEST 암호화 메커니즘을 이용해 전송합니다. JSP 컨테이너가 지원하지 않을 수도 있습니다.
FORM 일반적인 폼 페이지를 이용해 로그인 정보를 서버에 전송하는 방식입니다. 암호화되지 않은 로그인 정보를 그대로 전송합니다.
CLIENT-CERT 클라이언트가 인증서를 가지고 공인 키 인증 방식을 사용해 로그인하는 방식입니다.
FORM 형식으로 인증시 로그인 페이지관련 요구사항을 따라야합니다.

속성 이름 속성 값
form 태그의 action 속성 j_security_check
사용자의 name 속성 j_username
비밀번호의 name 속성 j_password
FORM기반 인증 로그인 페이지 예)
<form action="j_security_check" method="post"
아이디: <input type="text" name="j_username">
비밀번호:<input type="password" name="j_password">
<input type="submit" value="로그인">
</form>

'정리 노트 > JSP' 카테고리의 다른 글

12주-2일차  (0) 2023.12.27
12주차-1일  (0) 2023.12.26
11주-4일  (0) 2023.12.21
11주-3일  (0) 2023.12.20
11주-2일  (0) 2023.12.19
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/07   »
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 31
글 보관함