스프링 시큐리티(Spring Security)는 스프링 프레임워크 기반의 웹 애플리케이션 보안을
담당하는 프레임워크 입니다. 스프링 시큐리티는 인증(Authentication) 과 권한부여(Authorization)를 포함한 다양한 보안 기능을 제공합니다.
접근 주체(Principal) : 보호되는 자원에 접근하는 주체(사용자, 클라이언트, 서버, 시스템 등)
인증(Authentication) : 사용자의 신원을 확인하고 검증하는 과정으로, 스프링 시큐리티는 다양한 인증 방식을 지원합니다.
ex) username과 password를 이용한 폼 인증, OAuth를 이용한 소셜 로그인 등
권한(Authority) : 접근 주체가 보호되는 자원에 대해 가지고 있는 권한
권한부여(Authorization) : 인증된 사용자에 대해 특정한 권한을 할당하여, 허가된 작업만을 수행하도록 하는 과정입니다. 스프링 시큐리티는 다양한 권한부여 방식을 지원합니다.
ex) 롤(Role) 기반의 권한 부여, 표현식(Expression) 기반의 권한 부여 등
CSRF(Cross-Site Request Forgery) 방어 : 웹 애플리케이션에서 발생하는 취약점 중 하나로,
스프링 시큐리티에서는 CSRF 공격을 방어하기 위한 기능을 제공합니다. 이를 통해 사용자가
의도하지 않은 요청을 보내는 공격을 방어할 수 있습니다.
XSS(Cross-Site Scripting) 방어 : 웹 애플리케이션에서 발생하는 취약점 중 하나로, 스프링 시큐리티는 XSS 공격을 방어하기 위한 기능을 제공합니다. 이를 통해 사용자가 입력한 스크립트 코드를 필터링 하거나 이스케이핑 하여 XSS 공격을 방어할 수 있습니다.
세션 관리 : 스프링 시큐리티는 세션 관리 기능을 제공합니다. 이를 통해 사용자의 로그인 상태를 관리하고, 세션 타임아웃, 동시 로그인 등 다양한 세션 관리 옵션을 설장할 수 있습니다.
스프링 시큐리티는 다양한 기능을 제공하며, 웹 보안 외에도 메소드 보안, 데이터 보안 등
다양한 보안 영역에서 사용할 수 있습니다. 스프링 시큐리티는 개발자가 보안에 대한 이해 없이도 간편하게 보안 기능을 구현할 수 있도록 도와줍니다.
- 출처 : 점프 투 스프링부트, ChatGPT