인증: 적절한 사용자인지 파악한다.
권한: 특정한 작업을 수행할 권한이 있는지 파악한다. 가고 싶은 곳으로 가도록 하거나, 혹은 정보를 얻도록 허용하는 과정이다.
예시)
비행기 탑승 ㅡ> 여권, 신분증 검사(인증) ㅡ> 항공권으로 탑승 권한 부여(권한)

MVC패턴은 모든요청을 Dispatcher Servlet이 인터셉트후 적절한 Controller로 연결해준다.

Spring Security는 모든요청을 Spring Security이 인터셉트 후 (인증과 권한을 확인) Dispatcher Servlet으로 전송되고 적절한 Controller로 연결해준다.
Spring Security Filter Chain
CORS(Cross-Origin Resource Sharing)
브라우저에서 다른 출처의 리소스를 공유하는 방법이다.
Origin은 URL에서 프로토콜, 도메인, 포트 번호를 합친 부분
여기서 프로토콜(Scheme이라고도 함)에 해당하는 부분은 https://이고, 도메인에 해당하는 부분은 it-eldorado.com이며, 포트 번호에 해당하는 부분은 :80이다. 따라서 Origin은 https://it-eldorado.com:80이다.
출처: https://velog.io/@hoo00nn/CORSCross-Origin-Resource-Sharing-%EB%9E%80
CSRF(Cross-Site Request Forgery)
CSRF는 웹 보안 취약점의 일종이며, 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위(데이터 수정, 삭제, 등록 등) 을 특정 웹사이트에 요청하게 하는 공격입니다.
출처: https://devscb.tistory.com/123
필터체인 순서
1. 기본 필터
CORS, CSRF
2. 인증
3.권한
SpringSecurity 설정

인코딩, 해싱, 암호화
인코딩: 데이터를 원래 형식에서 다른 형식으로 변환하는 것
키나 패스워드를 사용하지 않는다.
가역적이다.(텍스트를 인코딩한 후 다시 실제 텍스트로 바꿀 수 있다.)
압축이나 스트리밍에 사용됨
예시) Base 64, MP3 등등
해싱: 데이터를 해시 문자열로 변환하는 것
비가역적(데이터를 해시로 변환하고 나면 원래 데이터를 구할 수 없다.)
데이터의 무결성을 검증하는데 사용한다.
예시: bcrypt, scrypt
암호화: 키나 패스워드를 사용해 데이터를 인코딩하는 것
키나 패스워드가 있어야 복호화를 할 수 있다.
예시: RSA
'백엔드 > Java Spring Boot 풀스택 클라우드 개발자 되기!' 카테고리의 다른 글
aop (0) | 2024.03.23 |
---|---|
responseBody (0) | 2023.07.05 |
logging 간단 정리 (0) | 2023.06.26 |
Annotations vs XML Configuration (0) | 2023.06.22 |
프로토타입 vs 싱글톤타입 (0) | 2023.06.19 |