본문 바로가기

항해99/스터디

[스터디] 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 - Spring Security, JWT

Spring Security는 강력한 사용자 정의가 가능한 인증 및 액세스 제어 프레임워크

  1. 인증: 데이터베이스, LDAP, OAuth 등과 같은 다양한 소스에 대해 사용자를 인증하기 위한 강력한 메커니즘을 제공함. 폼 기반 인증, HTTP Basic, HTTP Digest, OAuth 등 다양한 인증 방식도 제공
  2. 권한 부여: 개발자가 사용자 역할, 권한이나 표현을 기반으로 액세스 규칙을 정의할 수 있도록 해서 세분화된 액세스 제어를 가능하게 해줌. 
  3. 보안 필터: Servlet API와 통합되어 들어오는 요청을 가로채고 보안 검사를 적용함. 필터 체인을 사용하여 인증, 권한 부여, 세션 관리, CSRF 보호 등과 같은 작업을 수행
  4. 세션 관리: 세션 고정 보호, 동시 세션 제어, 세션 시간 초과 처리 및 세션 생성 정책을 포함해서 사용자 세션 처리 방법을 제어하는 ​​세션 관리 기능도 제공함
  5. CSRF 보호: CSRF(Cross-Site Request Forgery) 보호는 각 요청에 대해 고유한 토큰을 생성하고 검증하여 악의적인 공격을 방지하기 위해 Spring Security에 내장되어 있음
  6. 메서드 수준 보안: Spring Security를 ​​사용하면 개발자는 주석을 사용해서 개별 메서드나 클래스를 보호할 수 있음 -> 애플리케이션의 특정 부분에 대한 액세스를 세밀하게 제어 가능
  7. 다른 Spring 프로젝트와의 통합: Spring MVC, Spring Boot, Spring Data 등 다른 Spring 프로젝트와 원활하게 통합되어 애플리케이션의 다양한 계층을 쉽게 보호가능
  8. 사용자 정의 및 확장: 유연하고 확장 가능한 아키텍처를 제공 -> 개발자는 애플리케이션의 특정 보안 요구 사항에 따라 기능을 사용자 정의하고 확장이 가능함

요악하자면, Spring Security 강력한 보안 조치를 구현하고 일반적인 보안 위협으로부터 보호하며 민감한 리소스의 기밀성, 무결성, 가용성을 보장하기 위해 사용됨

 

CSRF

- 공격자가 사용자를 속여 사용자가 인증된 웹 애플리케이션에서 의도치 않게 작업을 실행하도록 하는 공격 유형

- 공격은 사용자의 애플리케이션 활성 세션을 악용하여 수행

- CSRF 이해하고 적절한 보안 조치를 구현하는 것은 무단 활동으로부터  애플리케이션을 보호하고 악의적인 행위자의 악용으로부터 사용자 데이터를 보호하는  중요한 일을 함

 

https://pingu514.tistory.com/45

 

스프링부트 jwt토큰 사용 시 설정

build.gradle 추가 (추가 후 꼭 코끼리 누르기) compileOnly group: 'io.jsonwebtoken', name: 'jjwt-api', version: '0.11.2' runtimeOnly group: 'io.jsonwebtoken', name: 'jjwt-impl', version: '0.11.2' runtimeOnly group: 'io.jsonwebtoken', name: 'jjwt-

pingu514.tistory.com

https://suddiyo.tistory.com/entry/Spring-JWTJson-Web-Token%EB%9E%80-%EA%B5%AC%EC%A1%B0-%EC%95%94%ED%98%B8%ED%99%94-%EB%B0%A9%EB%B2%95-%EC%9E%A5%EB%8B%A8%EC%A0%90

 

[Spring] JWT(Json Web Token)란? | 구조, 암호화 방법, 장단점

JWT (Json Web Token) : JWT(Json Web Token)란, JSON 포맷을 이용하여 사용자에 대한 속성을 저장하는 Claim 기반의 Web 토큰이다. JWT는 필요한 정보를 자체적으로 지니는 Self-Contained 방식으로 정보를 안정성 있

suddiyo.tistory.com