본문 바로가기

WEB/Back-end32

JWT 저장 (2024년 9월 메모를 기반으로 작성했습니다) 쏠거지 프로젝트를 진행하던 당시,모든 페이지에 접근하는 과정에서 JWT를 확인해야하는데 그러한 경우 토큰을 어디에 저장해야 할지 헷갈렸다.쿠키에 저장하기에는 "개발자 도구에서 쿠키에 대한 정보를 확인할 수 있기때문에 보안상 문제가 있지 않을까?" 라는 생각을 막연히 가졌었다. 그래서 네이버와 같은 대형 포털사이트에서 어떻게 하는지 로그인해보며 확인해본 결과 그냥 쿠키를 활용하는 것을 확인했다. 이후 쿠키/세션의 개념에 혼동이 와서 정리해본 내용JWT 저장쿠키 저장 방식장점HttpOnly 플래그로 XSS 공격 방어 가능요청에 자동 포함되어 편리서버에서 보안 설정 강력하게 제어 가능단점CSRF 공격에 취약 (SameSite 속성으로 완화 가능)SameSite:.. 2025. 1. 9.
(N:1) 다대일 관계 처리하기(SpringBoot) @ManyToOnePK: 참조되는 키, 하나만 존재FK: 다른 테이블에서 참조해 온 키, 다른 테이블의 식별자로 사용할 수 있음예시Member(PK: memberId) 멤버에서 삭제하려면 게시판이서 FK도 함께 삭제해야함 * 비식별관계: 참조하는 것은 같으나 FK가 아님.(멤버가 삭제되어도 오류가 발생하지 않음)@ToString(exclude = "board")ManyToOne을 했을 때 무한 참조를 방지하기 위해서 사용하는 것이라고 함left (outer) join즉시(Eager) 로딩, 지연(Lazy) 로딩@ManyToOne(fetch = FetchType.LAZY) // 명시적으로 Lazy 로딩 지정설정을 하지 않으면 기본값으로 Eager, 즉시 로딩으로 설정됨이는 항상 모든 엔티티를 가져오게 되므.. 2024. 10. 15.
@EnableWebSecurity(SpringBoot) @EnableWebSecuritySpring Security의 웹 보안 기능을 활성화하는 데 사용되는 어노테이션 - Spring Security의 웹 보안 지원을 활성화, 기본 웹 보안 구성을 제공 - 보안 관련 Config 파일에 위치하며 웹 기반 보안을 위한 SpringSecurityFilterChain을 생성- WebSecurityConfigurerAdapter를 상속받은 클래스나 SecurityFilterChain 빈을 정의하여 구체적인 보안 규칙을 설정해야 함 예시 사용:@Configuration @EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter {      @Override protected .. 2024. 10. 15.
JWT(Json Web Token) json web token 인증이 성공한 사용자에게 특수한 문자열(토큰)을 전송api 호출할때 이 문자열을 읽어서 해당 request가 정상적인지 확인  Header: 토큰 타입과 알고리즘 의미Payload: 이름(name)과 값(value)의 쌍을 cliam이라 하고 cliams를 모아둔 객체를 의미Signature 헤더의 인코딩 값과 정보의 인코딩 값을 합쳐 비밀 키로 해시 함수로 처리된 결과 https://jwt.io/ JWT.IOJSON Web Tokens are an open, industry standard RFC 7519 method for representing claims securely between two parties.jwt.io  JWT사용을 위해서는 직접 구현할 수도 있고 라이브.. 2024. 10. 15.