[TIL] CSRF, Token, JWT

Sarahsea 사라씨·2021년 8월 3일
1

TIL

목록 보기
45/128
post-thumbnail

오늘 배운 것

어제에 이어,
[인증/보안] 기초 둘째날,

- 세션기반 인증 (Session-based Authentication)

세션 인증과 토큰 인증 차이 포인트 : 인증정보가 어디 저장 되는가!!!

  • 세션인증: 클라이언트(쿠키) + 서버 (세션스토어)
  • 토큰인증: only 클라이언트(쿠키_ 로컬스토리지,브라우저..)
    - CSRF
  • cross site request forgery
  1. Web Application Security ⇒ 보안 필수
    여러 공격들이 있음 : SQL injection, XSS, CSRF
  2. CSRF 란? 성립할 조건
    • 쿠키 사용한 로그인 환경
    • 예측할 수 있는 요청, 파라미터 가지고 있어야함
      (써드파티 쿠키 이용해서)
  3. 그래서 이러한 CSRF를 막기위해서...
    • 토큰 사용하기
    • SameSite cookie 옵션 사용하기

- 토큰기반 인증 (Token-based Authentication)
언제 써? 왜 써?

  • 서버에 부담을 줄이기 위해, 여러개 서버를 쓰는 경우, 앱 확장의 경우

  • 토큰기반 인증의 장점: 1.무상태성&확장성 2.권한부여에 용이 (제한적 권한을 줄수도 있고,예)연락처 사용권한만 준다든지)3.어디서나 토큰 생성가능-꼭 해당서버에서만 만들어야 하는 것 아님

  • JWT : JSON Web Token, 클레임을 기반한 토큰 중 가장 대표적, 구조-header,payload,signature, 종류-access/refresh Token, 주로 access가 권한부여용, 상대적으로 유효기간 짧게주고, 만료됐을때 refresh token이용해서 새로운 access token 생성

  • 토큰에는 중요 개인정보 담지 않는 것이 좋다

  • 완전무결한 보안이란 없..있으면 좋겠지만.., 쿠키, 세션, JWT, OAuth 등 각 방법들의 장단점을 참고하며 필요에 맞게 사용하는 것이 좋다

- 스프린트 -Token

느낀 점

  • 하나하나 뜯어 보면 음, 싶은데 전체 flow가 머리에 확 잘 안박힌다, session 스프린트에서 좀 어렵다 싶었는데, 역시 머리에 개념이 안잡혀있어서 어려웠나보다, 차라리 오늘한 토큰은 상대적으로 수월했다- 하지만 서버부분 겨우 하다 정규시간 다감, 내가 너무 느린가??

  • 요 부분 개념이 면접 질문으로 잘 쓰일 정도로 중하다는데, 말로 설명할 수 있게 정리, 반복해야 겠다

  • 암호화 신기한데에?, 해커 신박한데? 그걸 막으려고 고안해낸 각종 방법들도 참 대단하다,, 와아ㅏㅏㅏ

  • 어제 끝까지 안되던게, 오늘은 다소 쉽게(?) 되는 건, 새로운 스프린트로 고군분투하다보니 자연스럽게 이해의 영역이 늘어난 걸까..

  • 추가로 살펴볼 부분, 잘 쟁여두었다 주말에 빼먹지 말고 보자:)

  • 스프린트 진행 과정, + 어려운 부분 코드 위주로 정리해봐야겠음..sequelize 부터...

  • 토이 시간이 점점 레퍼런스 해독과정으로 바뀌는 거 같은건..ㅠ

내일은

  • OAuth? 넌 누구냐
  • 토이 통과시키고 싶드아 흙
profile
생각하는 사람

0개의 댓글