간편결제, 신용카드 청구할인
카카오페이 3,000원
(카카오페이 5만원 이상 결제시, 3/1~3/31 기간 중 1회)
삼성카드 6% (21,150원)
(삼성카드 6% 청구할인)
인터파크 롯데카드 5% (21,380원)
(최대할인 10만원 / 전월실적 40만원)
북피니언 롯데카드 30% (15,750원)
(최대할인 3만원 / 3만원 이상 결제)
NH쇼핑&인터파크카드 20% (18,000원)
(최대할인 4만원 / 2만원 이상 결제)
Close

스프링 시큐리티 3 : 스프링 프레임워크 기반 표준 보안 솔루션

원제 : SPRING SECURITY 3
소득공제

2013년 9월 9일 이후 누적수치입니다.

판매지수 72
?
판매지수란?
사이트의 판매량에 기반하여 판매량 추이를 반영한 인터파크 도서에서의 독립적인 판매 지수입니다. 현재 가장 잘 팔리는 상품에 가중치를 두었기 때문에 실제 누적 판매량과는 다소 차이가 있을 수 있습니다. 판매량 외에도 다양한 가중치로 구성되어 최근의 이슈도서 확인시 유용할 수 있습니다. 해당 지수는 매일 갱신됩니다.
Close
공유하기
정가

25,000원

  • 22,500 (10%할인)

    1,250P (5%적립)

할인혜택
적립혜택
  • I-Point 적립은 출고완료 후 14일 이내 마이페이지에서 적립받기한 경우만 적립됩니다.
추가혜택
배송정보
주문수량
감소 증가
  • 이벤트/기획전

  • 연관도서(56)

  • 사은품(4)

출판사 서평

스프링 시큐리티 3는 스프링 시큐리티 프레임워크에 대해 전면을 할애해 설명한 최초의 기술 서적이다. 이 책은 크게 두 부분으로 구성된다. 전반부에서는 보안에 대한 기본 개념을 시작으로 인증, 권한부여, 미세 접근 제어, ACL 모듈 등 스프링 시큐리티 프레임워크와 관련한 주제에 대해 하나씩 설명하고 후반부에서는 OpenID, CAS, LDAP 등 외부 시스템과의 연동을 다룬다.

이 책에서는 보안에 대한 기본 설명을 시작으로 스프링 시큐리티의 설정을 살펴보고 이어서 간단한 JSP 웹사이트를 사용해 단계적으로 스프링 시큐리티의 보안 요소를 사이트에 적용하는 법을 설명한다. 이 책을 읽고 나면 스프링 시큐리티를 활용해 보안 취약점에 대처하는 웹 보안 기능을 구현할 수 있음은 물론 CAS, 커베로스, LDAP 등과도 손쉽게 연동할 수 있다.

보안은 모든 애플리케이션의 핵심적인 부분 중 하나다. 보안에 취약한 애플리케이션은 해커의 좋은 표적이 된다. 이 책에서는 이미 충분히 검증된 스프링 시큐리티를 이용해 자바 개발자들이 웹 애플리케이션에 대한 해커의 공격을 막고 애플리케이션의 중요 자원을 보호하기 위한 완벽한 지침을 제시한다.

이 책은 스프링 시큐리티 3에 대한 상세 가이드 서적이다. 이 책에서는 실제 비즈니스 시나리오를 토대로 가장 최근에 일어나고 있는 보안 위협에 대처하는 법을 배우게 될 것이다. 아울러 LDAP, OpenID, CAS, 커베로스, 액티브 디렉터리와 같은 외부 시스템과 스프링 시큐리티를 연동하는 법도 배우게 될 것이다.

이 책에서는 보안 개념을 소개한 후 스프링 시큐리티 3를 설치하고 설정하는 것으로 시작한다. 그런 다음 JSP 기반 웹 애플리케이션을 토대로 간단한 e-커머스 웹사이트를 구현한다. 실제 비즈니스 시나리오를 토대로 예제를 진행하므로 스프링 시큐리티 3의 다양한 기능들을 경험하다 보면 어느새 스프링 시큐리티 3를 실무에 적용할 기반이 마련될 것이다.

후반부에서는 여러분이 자주 마주치게 될 법한 통합 시나리오를 다룬다. 여기서는 특정 시스템과의 연동과 관련한 복잡한 문제들을 해결하는 법을 배울 것이다. 마지막으로 기존 스프링 시큐리티 2 사용자를 위해 스프링 시큐리티 2에서 3로 마이그레이션하는 내용으로 마무리한다.

아울러 이 책에서 제시하는 실질적인 가이드와 현실적이고 손쉬운 예제는 웹 애플리케이션을 보호하는 데 스프링 시큐리티 3를 활용하고자 하는 이들에게 많은 도움이 될 것이다.

이 책은 웹 애플리케이션을 개발하는 자바 개발자들을 위한 책이다. 이 책의 독자는 자바, XML, 스프링 프레임워크에 익숙하다고 가정한다. 스프링 시큐리티를 처음 접하는 개발자라도 이 책을 충분히 활용할 수 있다.

이 책에서 다루는 내용
- 보안에 취약한 애플리케이션의 설계 결함 인식
- 기본 권한부여 및 크리덴셜 저장 기능 구현
- 스프링 시큐리티 2에서 스프링 시큐리티 3로 자연스럽게 마이그레이션
- LDAP, Active Directory, NTLM과 같은 엔터프라이즈 서비스와의 연동
- 확장 및 커스터마이징을 통한 스프링 시큐리티 3의 활용
- 인하우스 애플리케이션 및 인기 있는 자바 프레임워크와의 연동
- 애플리케이션의 인증 및 권한부여에 가장 적합한 설정 적용

목차

01장 보안에 취약한 애플리케이션의 해부
보안 감사
예제 애플리케이션 소개
- JBCP 애완동물 상점 애플리케이션의 아키텍처
- 애플리케이션 개발도구
보안 감사 결과 검토
- 인증
- 권한부여
- 데이터베이스 크리덴셜 보안
- 민감한 정보
- 전송 레벨 보안
보안 문제 해결을 위한 스프링 시큐리티 3 사용
- 왜 스프링 시큐리티인가?
요약

02장 스프링 시큐리티 시작하기
핵심 보안 개념
- 인증
- 권한부여
간단한 절차를 통해 애플리케이션에 보안 적용하기
- 스프링 시큐리티 XML 설정 파일 구현하기
- web.xml 파일에 스프링 DelegatingFilterProxy 추가하기
- web.xml 파일에 스프링 시큐리티 XML 파일 레퍼런스 추가하기
- 부족한 부분들에 대한 고려사항!
보안은 복잡한 주제다?보호된 웹 요청의 아키텍처
- 요청은 어떻게 처리될까?
- auto-config가 내부적으로 하는 작업들
- 사용자들은 어떻게 인증받을까?
- 요청은 어떻게 권한부여를 받을까?
요약

03장 사용자 경험 개선
로그인 페이지 커스터마이징하기
- 커스텀 로그인 페이지 구현하기
로그아웃 기능 이해하기
- 사이트 헤더에 Log Out 링크 추가하기
- 로그아웃 동작 원리
remember me
- remember me 옵션 구현하기
- remember me 기능의 동작원리
- remember me 기능은 과연 안전할까?
비밀번호 수정 기능 구현하기
- 패스워드 변경 기능을 지원하도록 인 메모리 크리덴셜 스토어
- 확장하기
요약

04장 크리덴셜 안전하게 저장하기
스프링 시큐리티에서 데이터베이스를 사용한 인증 적용하기
- 데이터베이스 인증 스토어 설정하기
- 데이터베이스 기반 인증의 동작 원리
- 커스텀 JDBC UserDetailsService 구현하기
- 기본으로 제공되는 JDBC 기반 사용자 관리
JdbcDaoImpl에 대한 고급 설정
- 그룹 기반 권한부여 설정하기
- 데이터베이스 인증 시 레거시 또는 커스텀 스키마 사용하기
보안 패스워드 설정하기
- 패스워드 인코딩 설정하기
- 패스워드에 소금을 조금 치는 것은 어떨까?
솔트 패스워드 설정하기
- 패스워드 변경 기능 개선하기
- 커스텀 솔트 소스 설정하기
remember me 기능을 데이터베이스로 이전하기
- 데이터베이스에 상주하는 remember me 토큰 설정하기
- 데이터베이스에 저장된 토큰은 더 안전할까?
SSL을 사용한 사이트 보안
- SSL 사용을 위해 아파치 톰캣 설정하기
- 자동으로 사이트 영역 보호하기
요약

05장 미세 접근 제어
애플리케이션 기능과 보안에 대해 다시 생각하기
- 애플리케이션 보안에 대한 기획
- 사용자 역할 기획
- 페이지 레벨 보안 기획하기
다양한 미세 권한부여 방법
- 스프링 시큐리티의 태그 라이브러리를 사용해 조건에 따라 콘텐츠
- 렌더링하기
- 컨트롤러 로직을 사용해 조건적으로 콘텐츠 렌더링하기
- 페이지 내 권한부여를 설정하는 가장 좋은 방법은 무엇일까?
비즈니스 티어 보호하기
- 비즈니스 메서드 보안의 기본
- 메서드 보안의 여러가지 방식
- 메서드 보안의 동작 원리
고급 메서드 보안
- 빈 데코레이터를 사용한 메서드 보안 규칙
- 메서드 파라미터를 포함하는 메서드 보안 규칙
- 메서드 파라미터 바인딩의 동작 원리
역할 기반 필터링을 통해 메서드 데이터 보호하기
- 메서드 보안에 대한 합리적인 경고
요약

06장 고급 설정과 확장
커스텀 보안 필터 작성하기
- 서블릿 필터 레벨에서의 IP 필터링
커스텀 AuthenticationProvider 작성하기
- AuthenticationProvider를 사용해 간단한 싱글 사인 온 구현하기
- 여러 AuthenticationProvider 결합하기
- 요청 헤더를 사용해 싱글 사인 온 시뮬레이션하기
- 커스텀 AuthenticationProvider의 사용 시점에 대한 고려사항
세션 관리와 동시성
- 세션 고정 보호 설정하기
- 동시 세션 제어를 통해 사용자 보안 강화하기
- 동시 세션 제어의 다른 장점들
예외 처리 이해하고 설정하기
- 접근 거부 처리 설정하기
- AccessDeniedException을 일으키는 원인
- AuthenticationEntryPoint의 중요성
수동으로 스프링 시큐리티 인프라스트럭처 빈 설정하기
- Spring Security 빈 의존관계의 전체적인 설명
- 웹 애플리케이션 재설정하기
- 최소 스프링 시큐리티 환경 설정하기
고급 스프링 시큐리티 빈 기반 설정
- 세션 라이프사이클과 연관된 요소들 조정하기
- 다른 서비스들에 대한 수동 설정
- SpEL 표현식 핸들러와 Voter를 사용한 명시적 설정
- 메서드 보안에 대한 빈 기반 설정
- 명시적인 설정 마무리하기
- 어떤 방식의 설정을 택해야 할까?
인증 이벤트 처리
- 인증 이벤트 리스너 설정하기
- 수많은 애플리케이션 이벤트들
SpEL 표현식 핸들러의 커스텀 구현체 개발하기
요약

07장 접근 제어 목록
비즈니스 객체 보안에 접근 제어 목록 사용하기
- 스프링 시큐리티에서의 접근 제어 목록
스프링 시큐리티 ACL 지원 기능을 위한 기본 설정
- 간단한 대상 시나리오 가정하기
- HSQL 데이터베이스에 ACL 테이블 추가하기
- 접근 결정 관리자 설정하기
- ACL 지원 빈 설정하기
- 간단한 ACL 엔트리 생성하기
고급 ACL 주제들
- 퍼미션의 동작 원리
- 커스텀 ACL 퍼미션 선언
- 스프링 시큐리티 JSP 태그 라이브러리를 사용해 JSP에서
- ACL 활성화하기
- ACL을 지원하는 스프링 표현식 언어
- 뮤터블 ACL과 권한부여
- Ehcache ACL 캐싱
일반적인 ACL 디플로이에 대한 고려
- ACL 규모의 확장성과 성능 모델링
- 커스텀 개발에 들어가는 비용을 간과하지 말자
- 스프링 시큐리티 ACL을 꼭 사용해야 할까?
요약

08장 OpenID에 대한 개방
OpenID라는 약속의 땅
- OpenID 가입
스프링 시큐리티에서의 OpenID 인증 사용
- OpenID 로그인 폼 작성
- 스프링 시큐리티에서의 OpenID 지원 기능 설정
- OpenID 사용자 추가하기
OpenID 사용자 등록 문제
- OpenID 식별자가 해석되는 과정
- OpenID를 이용한 사용자 등록 구현
어트리뷰트 교환
- 스프링 시큐리티 OpenID에서의 AX 사용
- 현실에서의 AX 지원과 제약
- 구글 OpenID 지원
OpenID는 안전할까?
요약

09장 LDAP 디렉터리 서비스
LDAP 이해
- LDAP
- 일반 LDAP 어트리뷰트 이름
- 임베디드 LDAP 서버 실행
기본 LDAP 연동 설정
- LDAP 서버 레퍼런스 설정하기
- LDAP AuthenticationProvider 사용
- 임베디드 LDAP 문제 해결
스프링 LDAP 인증 방식 이해
- 사용자 크리덴셜 인증
- 사용자 역할 멤버십 판단
- UserDetails의 추가 어트리뷰트 매핑
고급 LDAP 설정
- 예제 JBCP LDAP 사용자
- 비밀번호 비교 vs. 바인딩 인증
- UserDetailsContextMapper 설정
- 또 다른 password 어트리뷰트 사용
- LDAP을 UserDetailsService로 사용
외부 LDAP 서버와의 연동
명시적 LDAP 빈 설정
- 외부 LDAP 서버 레퍼런스 설정
- LdapAuthenticationProvider 설정
- LDAP을 통한 마이크로소프트 액티브 디렉터리와의 연동
- UserDetailsService에 역할 검색 위임
요약

10장 CAS를 활용한 싱글 사인 온
CAS 소개
- 고수준 CAS 인증 흐름
- 스프링 시큐리티와 CAS
- CAS 설치와 설정
기본 CAS 연동 설정
- CasAuthenticationEntryPoint 추가
- CAS 티켓 검증 사용
- CasAuthenticationProvider를 활용한 진위성 증명
고급 CAS 설정
- CAS 단언으로부터의 어트리뷰트 조회
- 어트리뷰트 조회가 왜 유용할까?
- 추가적인 CAS의 기능들
요약

11장 클라이언트 인증서 인증
클라이언트 인증서 인증의 동작 원리
클라이언트 인증서 인증 인프라스트럭처 설정
- 공개 키 인프라스트럭처의 용도 이해
- 클라이언트 인증서 키 쌍 생성하기
- 톰캣 트러스트 스토어 설정
- 브라우저로 인증서 키 쌍 불러오기
- 테스트 마무리
- 클라이언트 인증서 인증 문제 해결
스프링 시큐리티에서의 클라이언트 인증서 인증 설정
- security 네임스페이스를 사용한 클라이언트 인증서 인증 설정
- 스프링 시큐리티가 인증서 정보를 사용하는 원리
- 스프링 시큐리티 인증서 인증의 동작 원리
- 나머지 부족한 부분들
- 듀얼 모드 인증 지원
스프링 빈을 사용한 클라이언트 인증서 설정
- 빈 기반 설정의 추가 기능
클라이언트 인증서 인증 구현 시 고려 사항-
요약

12장 스프링 시큐리티 확장 프로젝트
스프링 시큐리티 확장 프로젝트
커베로스와 SPNEGO 인증에 대한 기초 지식
스프링 시큐리티에서의 커베로스 인증
- 전체적인 커베로스 스프링 시큐리티 인증 흐름
- 준비 작업
- 커베로스 관련 스프링 빈 설정
- SPNEGO 빈을 security 네임스페이스에 연결하기
- 애플리케이션 서버 장비를 커베로스 영역에 추가
- 파이어폭스 사용자들에 대한 고려 사항
- 문제 해결
커베로스와의 연동을 위한 LDAP UserDetailsService 설정
커베로스와 함께 폼 로그인 사용하기-
요약

13장 스프링 시큐리티 3으로 마이그레이션하기
스프링 시큐리티 2에서 마이그레이션하기
스프링 시큐리티 3의 개선 사항
스프링 시큐리티 3에서의 설정 변화
- AuthenticationManager 설정 수정
- 세션 관리 옵션을 위한 새로운 설정 구문
- 커스텀 필터 설정에 대한 변경사항
- CustomAfterInvocationProvider에 대한 변경 사항
- 그 밖의 설정 변경 사항
패키지와 클래스 관련 변경 사항
요약

부록 추가 참고 자료
JBCP Pets 예제 코드 시작하기
사용 가능한 애플리케이션 이벤트
스프링 시큐리티 가상 URL
메서드 보안을 위한 명시적인 빈 설정
논리적인 필터명의 마이그레이션 참고 사항

본문중에서

이 책은 웹 보안에 대해 고민하는 모든 사람들에게 추천하는 책이다. 저자인 피터 뮬라리엔은 스프링 프레임워크 포럼에서 고정 패널로 활동하고 있으며 오랜 시간 동안 많은 개발자들이 올린 질문에 답하고 의견을 나누었고 개발자들이 정말 궁금한 게 뭔지 알고 있는 뛰어난 개발자다. 저자는 이 책을 읽는 독자들이 스프링 시큐리티를 최대한 쉽게 이해하게끔 각종 다이어그램을 사용해 전체적인 흐름을 보여주고 한 주제를 한 번에 하나씩 찬찬히 설명한다. 저자의 오랜 경험에서 나온 혜안은 스프링 시큐리티를 공부할 때 독자들이 피부로 느끼는 궁금증을 해소하기에 부족함이 없으며 저자가 중간 중간 주는 팁은 보안 담당 개발자라면 항상 염두에 둬야 할 내용으로 가득 차 있다.

이 책은 크게 스프링 시큐리티 프레임워크의 기본 지식을 다루는 전반부(1~7장), 외부 시스템 연동을 다루는 후반부(8~12장), 마이그레이션을 다루는 13장으로 구성된다. 이 책은 레시피 형태의 책은 아니고 처음부터 하나씩 내용을 익히다 보면 어느새 기본 지식을 튼튼히 다질 수 있게 해주는 책이다.

역자는 스프링 시큐리티를 이루는 두 축인 인증(authentication)과 권한부여(authorization)에 대한 설명이 이 책의 핵심이라고 생각한다. 우선 이 두 가지에 대한 설명을 이해하고 나면 이후의 설명은 이러한 인증, 권한부여를 어디까지 미세하게 적용하고, 어느 부분과 연동할 것인가에 관한 상세 설명으로 볼 수 있다. 역자는 이 책의 인증과 권한부여에 대한 도입부 설명이 마치 아리아드네의 실(Ariadne's thread)과 같다고 느꼈다. 그리스 로마 신화에서 테세우스가 미노타우로스의 미로에서 아리아드네의 실을 붙잡고 미로를 무사히 빠져나올 수 있었던 것처럼 독자들도 인증과 권한부여에 대한 두 주요 주제에 대한 이 책의 설명을 이해하기만 하면 아무리 복잡한 권한 적용도 스프링 시큐리티를 통해 손쉽게 할 수 있을 거라 확신한다.

스프링 시큐리티는 말 그대로 스프링 기반의 보안 프레임워크다. 이 책에서는 스프링에 대한 기본 지식을 전제하지만 스프링에 대한 최소한의 지식(주로 스프링 웹 MVC)을 갖춘 자바 개발자라면 누구든지 이 책을 볼 수 있다. 스프링 시큐리티는 스프링의 CoC 원칙을 그대로 계승한 프레임워크다. 복잡한 설정이 싫은 개발자라면 관례를 따라 개발하면 되고, 프로젝트에서 복잡한 보안 규칙을 적용해야 한다면 단계적인 보안 선언을 통해 원하는 수준의 보안을 적용할 수 있다. CoC 원칙으로 인해 초기 기본 설정에 대한 진입 장벽은 매우 낮으며 이후 프로젝트와 관련한 보안 규칙을 원하는 대로 커스터마이징하거나 오버라이드할 수 있다. 이 책이 웹 보안으로 고민하는 많은 분들에게 아리아드네의 실 같은 책이 되기를 바란다.
(/ 역자서문 중에서)

저자소개

피터 뮬라리엔(Peter Mularien) [저] 신작알림 SMS신청 작가DB보기
생년월일 -
출생지 -
출간도서 0종
판매수 0권

피터 뮬라리엔은 현재 중급 규모의 엔터프라이즈 소프트웨어 벤더의 설계자이자 수석 개발자이다. 피터 뮬라리엔은 웹 기반 애플리케이션 개발에 종사했으며 다양한 분야의 기술 관련 컨설턴트로 일하면서 10년 이상 주요 기업과 소형 기업들에 컨설팅을 제공했다. 자바와 스프링에 대해서 다루고 있는 그의 블로그인 "It's Only Software"는 복잡한 기술들에 대해 개발자들이 쉽게 이해할 수 있는 내용과 튜토리얼로 인해 많은 인기를 얻고 있다. 피터는 스프링 커뮤니티 포럼의 유명 패널 중 한 명이며 전체 포스팅을 올린 사람들 중 상위 30위 안에 올라 있다.

생년월일 -
출생지 -
출간도서 0종
판매수 0권

인디 개발자이자 프리랜서 번역가로 활동 중이다. 이따금 http://joshy21.com/weblog에 번역과 상관없는 글을 올리고 있다. 역서로는 [하둡 인 프랙티스], [시작하세요! iOS 6 프로그래밍], [프로페셔널 Node.js 프로그래밍], [NoSQL 프로그래밍], [프로 스프링 3], [라이프해커], [시작하세요! 아이폰 5 프로그래밍], [안드로이드 레시피], [시작하세요! Unity 3D 게임 프로그래밍], [시작하세요! 안드로이드 게임 프로그래밍], [시작하세요! 아이폰 4 프로그래밍], [플래시 빌더 4 & 플렉스 4 바이블], [쉽고 빠르게 익히는 CSS3], [스프링 시큐리티 3], [시작하세요!

펼쳐보기

이 상품의 시리즈

(총 93권 / 현재구매 가능도서 56권)

펼쳐보기

컴퓨터/인터넷 분야에서 많은 회원이 구매한 책

    리뷰

    8.0 (총 0건)

    구매 후 리뷰 작성 시, 북피니언 지수 최대 600점

    리뷰쓰기

    기대평

    작성시 유의사항

    평점
    0/200자
    등록하기

    기대평

    6.0

    교환/환불

    교환/환불 방법

    ‘마이페이지 > 취소/반품/교환/환불’ 에서 신청함, 1:1 문의 게시판 또는 고객센터(1577-2555) 이용 가능

    교환/환불 가능 기간

    고객변심은 출고완료 다음날부터 14일 까지만 교환/환불이 가능함

    교환/환불 비용

    고객변심 또는 구매착오의 경우에만 2,500원 택배비를 고객님이 부담함

    교환/환불 불가사유

    반품접수 없이 반송하거나, 우편으로 보낼 경우 상품 확인이 어려워 환불이 불가할 수 있음
    배송된 상품의 분실, 상품포장이 훼손된 경우, 비닐랩핑된 상품의 비닐 개봉시 교환/반품이 불가능함

    소비자 피해보상

    소비자 피해보상의 분쟁처리 등에 관한 사항은 소비자분쟁해결기준(공정거래위원회 고시)에 따라 비해 보상 받을 수 있음
    교환/반품/보증조건 및 품질보증 기준은 소비자기본법에 따른 소비자 분쟁 해결 기준에 따라 피해를 보상 받을 수 있음

    기타

    도매상 및 제작사 사정에 따라 품절/절판 등의 사유로 주문이 취소될 수 있음(이 경우 인터파크도서에서 고객님께 별도로 연락하여 고지함)

    배송안내

    • 인터파크 도서 상품은 택배로 배송되며, 출고완료 1~2일내 상품을 받아 보실 수 있습니다

    • 출고가능 시간이 서로 다른 상품을 함께 주문할 경우 출고가능 시간이 가장 긴 상품을 기준으로 배송됩니다.

    • 군부대, 교도소 등 특정기관은 우체국 택배만 배송가능하여, 인터파크 외 타업체 배송상품인 경우 발송되지 않을 수 있습니다.

    • 배송비

    도서(중고도서 포함) 구매

    2,000원 (1만원이상 구매 시 무료배송)

    음반/DVD/잡지/만화 구매

    2,000원 (2만원이상 구매 시 무료배송)

    도서와 음반/DVD/잡지/만화/
    중고직배송상품을 함께 구매

    2,000원 (1만원이상 구매 시 무료배송)

    업체직접배송상품 구매

    업체별 상이한 배송비 적용