인프런의 영한님의 스프링mvc2편을 보고 정리한 글입니다.
무엇을 배웠나요?
- 쿠키를 사용해서 로그인 id를 클라이언트에서 서버로 전달해서 로그인을 유지할 수 있다. 그러나 여기에는 심각한 보안 문제가 있다.
- 쿠키 값은 임의로 변경할 수 있다.
- 클라이언트가 쿠키를 강제로 변경하면 다른 사용자가 된다.
- ex) 브라우저에서 f12를 눌러 개발자모드를 켠 후 Application에서 Cookie 변경 확인
- 쿠키에 보관된 정보는 훔쳐갈 수 있다.
- 쿠키에 있는 정보가 웹브라우저에도 보관되고, 네트워크 전송 구간에서 털릴 수도 있다.
- 해커가 쿠기를 한번 훔쳐가면 평생 사용할 수 있다.
➡️ 대안
- 쿠키에 중요한 값을 노출하지 않고, 사용자 별로 예측 불가능한 임의의 토큰(랜덤값)을 노출하고, 서버에서 토큰과 사용자 id를 매핑해서 인식한다. 그리고 서버에서 토큰을 관리한다.
- 토큰은 해커가 임의의 값을 넣어도 찾을 수 없도록 예상 불가능 해야한다.
- 해커가 토큰을 털어가도 시간이 지나면 사용할 수 없도록 서버에서 해당 토큰의 만료시간을 짧게 유지한다. 또는 해킹이 의심되는 경우 서버에서 해당 토큰을 강제로 제거하면 된다.
'Spring' 카테고리의 다른 글
로그인 처리1 - 쿠키, 세션 : 로그인 처리하기 - 세션 직접 만들기 (0) | 2022.09.12 |
---|---|
로그인 처리1 - 쿠키, 세션 : 로그인 처리하기 세션 - 동작 방식 (0) | 2022.09.12 |
로그인 처리1 - 쿠키, 세션 : 로그인 처리하기 - 쿠키 사용 (0) | 2022.09.11 |
로그인 처리1 - 쿠키, 세션 (0) | 2022.09.11 |
검증2 - Validation : HTTP 메시지 컨버터 (0) | 2022.09.01 |