22.03.30 항해99 6기 4주 5일차 TIL

유현준·2022년 3월 30일
0

Done list

  • 배포
  • CSRF 보안구현
  • validation 보완

Trouble shooting

팀원들과 서로 만든 페이지의 CSRF 보안을 체크해주었다. 체크한 중점사항은 1) 로그인한 유저의 게시글 작성 API, 2) 사용자 댓글 작성자의 댓글 수정/삭제 API의 CSRF 보안이었다. 아래와 같은 플로우로 다행히 문제는 해결했다.

  • 로그인한 유저의 게시글 작성 API는 CSRF 보안이 잘되어있었다.
    잘되어 있었던 까닭은, 게시글 작성 API에서 DB에 입력된 데이터를 저장하기 전에, API에 request를 보낸 사용자의 브라우저 localstorage에 담긴 token 데이터를 가져와서, 이 token data가 User DB에 존재하는지부터 검토하는 로직이 있었기 때문이었다. 즉, 로그인한 사용자 = 실제 회원가입한 사용자를 검토하기 때문에, CSRF 이슈가 발생하지 않았던 것이다.

  • 그런데, 사용자 댓글 작성자의 댓글 수정/삭제 API는 CSRF 문제가 발생했다.
    문제가 발생했던 까닭은, 게시글 작성 API와는 다르게, Request를 보낸 브라우저의 localStorage에 담긴 토큰 데이터를 UserDB와 비교해보는 로직이 없었기 때문이었다.

  • 이에, 게시글 작성 API의 로직을 활용해서, 댓글 수정/삭제 API에 Request를 보낸 브라우저의 localStorage의 token 값을 디코드 + token 디코드한 값을 기준으로 Comment DB에서 request 받은 댓글을 탐색, 수정/댓글 실행하도록 했다.

To do list

  • 개인 과제 제출
  • 팀 과제 공부
  • 코드 정리 + 과제 테스트 코드 작성하기
  • mySQL 공부(3주차 강의)
  • 팀 과제
  • 소켓 개념 정리
  • 코드 책 읽기
profile
차가운에스프레소의 개발블로그입니다. (22.03. ~ 22.12.)

0개의 댓글