SpringBoot 안전

Spring Security 가 classpath 에 있다 면 웹 은 기본적으로 모든 HTTP 터미널 에 'basic' 인증 을 사용 합 니 다.웹 애플 리 케 이 션 에 방법 단계 (method - level) 의 안전성 을 추가 하기 위해 @ EnableGlobalMethodSecurity 와 원 하 는 설정 을 추가 할 수 있 습 니 다. 추가 정 보 는 Spring Security Reference 에서 찾 을 수 있 습 니 다.
기본 AuthenticationManager 는 한 명의 단독 사용자 만 있 습 니 다. (사용자 이름 은 'user' 이 고 비밀 번 호 는 무 작위 암호 입 니 다. 시작 할 때 INFO 단계 에서 출력 됩 니 다)Using default security password: 474dcc50-1a68-400e-af74-0b9494e312fa
로그 설정 을 조정 하면 org. spring from work. boot. autoconfigure. security 클래스 가 INFO 메 시 지 를 기록 하 는 것 으로 설정 되 어 있 지 않 으 면 기본 암 호 는 인쇄 되 지 않 습 니 다.
보안. user. password 를 제공 하여 비밀 번 호 를 변경 할 수 있 습 니 다. 이것 과 다른 유용 한 속성 은 보안 Properties ("security" 를 접두사 로 하 는 속성) 를 통 해 외부 화 되 었 습 니 다 (외부 화 된 파일 은 application. properties 나 application. yml 에 있 습 니 다).
기본 보안 설정 은 Security AutoConfiguration 과 가 져 온 클래스 에서 이 루어 집 니 다 (SpringBoot WebSecurity Configuration 은 웹 보안 에 사용 되 며 AuthenticationManager Configuration 은 웹 응용 이 아 닌 인증 설정 에 사용 할 수 있 습 니 다).@ EnableWebSecurity 주 해 를 사용 하 는 bean 을 추가 할 수 있 습 니 다. 웹 프로그램의 기본 보안 설정 을 완전히 닫 을 수 있 습 니 다. (인증 관리자 설정 이나 Actuato 의 보안 을 사용 하지 않 습 니 다.)외부 속성 설정 과 WebSecurity ConfigurerAdapter 형식의 beans 를 사용 하여 정의 해 야 합 니 다 (예 를 들 어 폼 기반 로그 인 추가).인증 관리자 설정 도 닫 습 니 다. AuthenticationManager 형식의 bean 을 추가 할 수 있 습 니 다. 그렇지 않 으 면 @ Configuration 류 의 한 방법 에서 AuthenticationManager Builder 를 자동 으로 설치 하여 전역 AuthenticationManager 를 설정 할 수 있 습 니 다.스프링 부츠 예시 입 니 다.
웹 응용 프로그램 에서 당신 이 얻 을 수 있 는 상 자 를 열 때 사용 할 수 있 는 기본 적 인 특성 은 다음 과 같 습 니 다.
  • 메모리 로 저 장 된 AuthenticationManager bean 과 단독 사용자 (user 의 속성 은 Security Properties. User 를 볼 수 있 습 니 다).
  • 흔히 볼 수 있 는 정적 자원 위치 (/ css /, / js /, / images /, / webjars / 와 * * / favicon. ico) 를 무시 합 니 다.
  • 다른 모든 노드 에 HTTP Basic 보안 을 제공 합 니 다.
  • 안전 과 관련 된 사건 은 Spring 의 ApplicationEventPublisher (성공 과 실패 인증, 방문 거부) 에 발 표 됩 니 다.
  • Spring Security 가 제공 하 는 일반적인 바 텀 기능 (HSTS, XSS, CSRF, 캐 시) 은 기본적으로 모두 열 려 있 습 니 다.

  • 상기 모든 기능 은 외부 속성 설정 (security. *) 을 통 해 열 거나 닫 거나 수정 할 수 있 습 니 다.다른 자동 설정 의 특성 을 바 꾸 지 않 고 접근 규칙 을 덮어 쓰 려 면 @ Order (Security Properties. ACCESS OVERRIDE ORDER) 가 설명 한 WebSecurity Configurer Adapter 형식의 @ Bean 을 추가 할 수 있 습 니 다.
    WebSecurity ConfigurerAdapter 는 기본적으로 모든 경로 와 일치 합 니 다. Spring Boot 가 자동 으로 설정 한 접근 규칙 을 완전히 덮어 쓰 지 않 으 려 면 덮어 쓰 고 싶 은 경 로 를 명확 하 게 설정 할 수 있 습 니 다.
    외부 속성 설정 보안 프로 퍼티
    security.basic.authorize-mode=role # Security authorize mode to apply.        
    security.basic.enabled=true # Enable basic authentication.  basic    
    security.basic.path=/** # Comma-separated list of paths to secure.            
    security.basic.realm=Spring # HTTP basic realm name.HTTP    
    security.enable-csrf=false # Enable Cross Site Request Forgery support.           
    security.filter-order=0 # Security filter chain order.        
    security.filter-dispatcher-types=ASYNC, FORWARD, INCLUDE, REQUEST # Security filter chain dispatcher types.           
    security.headers.cache=true # Enable cache control HTTP headers.      HTTP 
    security.headers.content-security-policy= # Value for content security policy header.        
    security.headers.content-security-policy-mode=default # Content security policy mode.        
    security.headers.content-type=true # Enable "X-Content-Type-Options" header.  "X-Content-Type-Options" 
    security.headers.frame=true # Enable "X-Frame-Options" header.   "X-Frame-Options"  。
    security.headers.hsts=all # HTTP Strict Transport Security (HSTS) mode (none, domain, all).HTTP      (HSTS)  (none, domain, all)
    security.headers.xss=true # Enable cross site scripting (XSS) protection.        (XSS)  
    security.ignored= # Comma-separated list of paths to exclude from the default secured paths.                  
    security.require-ssl=false # Enable secure channel for all requests.           
    security.sessions=stateless # Session creation policy (always, never, if_required, stateless).Session    (always, never, if_required, stateless)
    security.user.name=user # Default user name.      
    security.user.password= # Password for the default user name. A random password is logged on startup by default.        ,             。
    security.user.role=USER # Granted roles for the default user name.          
    

    좋은 웹페이지 즐겨찾기