분류 전체보기(191)
-
𝓒𝓢𝓡𝓕
✔오늘 배운 중요한 🔑 pointCSRF는 다른사이트에서 유저가 보내는 요청을 조작하는 공격이다.CSRF 토큰은 서버에서 생성되고 클라이언트와 공유되는 인증 값이다.🎯 오늘 배운 내용 CSRF (Cross - Site Request Forgery)공격자가 사용자의 인증 정보를 이용해 사용자가 의도하지 않은 요청을 웹 애플리케이션에 보내는 공격.이 공격은 사용자가 특정 웹사이트에 로그인한 상태에서 발생하며, 공격자는 사용자의 권한으로 악의적인 요청을 전송할 수 있다. CSRF 예시A라는 사용자가 http://sober-wachu.com/ 에 접속하여 로그인을 진행을 한 상태이고 Wachu sober-wachu.com B라는 공격자가 EMAIL혹은 다른 사이트의 게시글에 https://www.googl..
2024.08.02 -
Տɑʍҽ ՏíԵҽ
✔오늘 배운 중요한 🔑 pointCSRF를 방지하기 위해서 Same Site 설정이 효과적이다.LAX (같은 사이트+ GET요청 크로스 사이트)STRICT (같은 사이트)NONE (같은 사이트+ 크로스 사이트)🎯 오늘 배운 내용 Same Site란?웹 애플리케이션에서 CSRF(교차 사이트 요청 위조) 공격을 방지하기 위해 HTTP 쿠키에서 설정할 수 있는 속성 Same Site가 왜 중요할까?CSRF 공격은 악성 웹사이트가 사용자가 로그인된 상태인 웹사이트에 비정상적인 요청을 보내도록 하는 공격이다. SameSite 속성을 사용하면 쿠키가 특정 조건에서만 전송되므로, 이러한 공격을 효과적으로 방지할 수 있기 때문에 SameSite는 매우 중요하다. Same Site종류 LAX 쿠키가..
2024.08.01 -
Refresh Token을 HTTP ONLY쿠키에 저장하기
❎ 오늘의 진행상황 @RestController@RequestMapping("/refresh-token")class RefreshTokenController( private val refreshTokenService: RefreshTokenService,) { @PostMapping fun refreshAccessToken( @RequestBody request: RefreshTokenRequest, response: javax.servlet.http.HttpServletResponse ): ResponseEntity { val tokenResponse = refreshTokenService.refreshAccessToken(request) ..
2024.07.31 -
Refresh Token Redis로 저장하기
❎ 오늘의 진행상황 로그인, 로그아웃 기능에 Refresh Token을 Redis에 저장하고 삭제하는 로직 추가override fun login(request: LoginRequest): TokenResponse { val loginMember = memberRepository.findByEmail(request.email) ?: throw IllegalStateException("이메일이 없음") check(passwordEncoder.matches(request.password, loginMember.password)) { "비밀번호가 맞지 않음" } val tokens = jwtTokenManager.generateToken(loginMember.id!!, MemberR..
2024.07.30 -
𝓡𝓮𝓯𝓻𝓮𝓼𝓱 𝓣𝓸𝓴𝓮𝓷
✔오늘 배운 중요한 🔑 pointRefresh Token을 사용하는 이유는 탈취의 위험성 때문이다.Access Token의 수명은 짧게, Refresh Token의 수명은 길게Refresh Token은 탈취당해서는 안되기 때문에 Http Only 설정을 하자(FE)🎯 오늘 배운 내용 Refresh Token이 필요한 이유? val accessToken = Jwts.builder() .subject(memberId.toString()) .claims(claims) .issuer(issuer) .expiration(Date(System.currentTimeMillis() + accessTokenValidity)) .signWith(key) .compact()accessTo..
2024.07.29 -
간단한 Debugging 사용법
✔오늘 배운 중요한 🔑 point특정 지점에 실행을 중지하고 싶을 때는 Break Point코드의 흐름을 보고싶을때는 Step Over(F8)중단된 시점에서 표현식이나 변수의 세부적인 값을 알고싶을 때는 Evaluate Expression(Alt+F8)🎯 오늘 배운 내용 프로젝트를 진행하면서 수도없이 많은 오류를 직면하게 되는데 chatGpt나 구글링을 통해서 오류를 해결하는 경우도 매우 많지만 Gpt나 구글링 만으로는 도저히 해결이 되지 않는 상황 또한 많이 발생하게 된다.그럴때에는 직접 해당 오류를 스스로 찾고 해결해야하는 경우가 생기는데 그럴때에 매우 유용하게 사용할 수 있는 것이 디버거(Debugger) 모드이다. 인텔리제이(Intellij)에서 디버거 모드 사용하는 법 윈도우 기준 Shif..
2024.07.28