spring security를 이용해 로그인/회원가입 을 구현작업 진행
해당 부분 작업을 진행하면서 많은 고민에 빠졌다
jwt는 무엇이고 seccion과 cookei는 무엇이며, security는 어떻게 동작하는것인지
많이 찾아봤지만 역시나 공부가 더 필요해 보인다.
일단 이번 프로젝트에서는
: 로그인 작업 진행시 Jwt토큰을 생성해서 header에 넣어 Client에게 전달할 예정
XSS(Cross-Site Scripting)
XSS는 대상 웹사이트에 악성 스크립트를 주입하여 비정상적인 동작을 실행시키는 공격 유형이다. 공격자는 다른 사용자의 브라우저에서 스크립트가 실행되게 하여 사용자의 쿠키, 세션 등 중요한 정보에 접근할 수 있다.
해결 방법 : HttpOnly 속성 사용
HttpOnly 속성은 웹브라우저가 스크립트를 통한 Dom document.cookie 객체 접근을 허용하지 않도록 합니다. 즉 공격자의 XSS를 통한 토큰 탈취를 방지할 수 있습니다.
cookie.setHttpOnly(true);
CSRF ( Cross Site Request Forgery)
사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위를 특정 웹사이트에 요청하도록 만드는 공격 유형이다. 공격자는 사용자의 엑세스 토큰을 탈취하지 않고도 사용자로 하여금 엑세스 토큰을 사용하여
해결 방법 : SameSite 속성 사용
SameSite 속성은 웹브라우저가 쿠키를 받은 서버가 아닌 다른 서버로 요청을 하는 경우 그 쿠키는 전송하지 못하도록 합니다.
쿠키로 저장하는 방법을 선택 했으니 토큰의 도난을 사전방지를 생각해야한다!
추후 Refresh Token을 생성해서 radis에 저장하는 방식으로 기능 고도화를 해보려한다.