TIL 6/29

개발(공부) 자국·2021년 6월 29일
0
post-custom-banner

학습내용

세션에 대해서 학습했다. 쿠키는 상태를 저장 할 수 있게 서버가 클라이언트에게 일방적으로 저장하는 데이터다. 그렇다보니 인증에 대한 부분또한 쿠키에 담아서 관리하게 되었다. 그러다보니 취약한 보안의 문제가 생겼고 세션이 그 문제점을 보완하기 위해 생겼다. 사용자가 인증에 성공한 상태를 세션이라고 부른다. 사용자가 인증에 성공한 상태가 되면 서버는 사용자의 정보를 암호화하여 세션 아이디를 만든다. 이 세션 아이디로 사용자가 서버에 요청시 매번 데이터베이스로 확인하는 작업 없이 세션 아이디로 인증한다. 그러기 위해서는 세션 아이디를 정보를 클라이언트에도 보내고 서버이 세션스토어에도 세션아이디를 보관한다. 클라이언트에게 보낼때는 쿠키 안에 세션아이디를 담아서 보낸다. 다음에 요청을 보낼시에 사용자는 쿠키를 보낼때 서버는 쿠키안의 세션 아이디로 사용자를 데이터베이스까지 가지 않고 서버의 세션스토어에서 확인하고 인증한다. 세션 아이디는 생성할때 유효기간을 정하는데 쿠키보다는 더 짧게 설정한다. 세션이 만료되면 다시 발급받고 사용한다. 이렇게 인증 정보를 서버와 클라이언트 둘다 가지면서 암호화가 되어 있기 때문에 쿠키보다는 취약해던 보안이 더 좋아지게 된다. 그런데 이 세션 아이디도 한계가 있다. 그 내용은 다음에 토큰을 공부하면서 같이 알아볼 것이다.

느낀점

보안의 발전을 보는것 같았다. 아직 보안에 대한 공부를 할 단계는 아직 못되서 잘 모르지만 발전하는 과정을 보니 다음은 어떤 방법으로 해결했을까 궁금해졌다. 쿠키도 그렇고 세션도 옵션이 다양해서 아직 완전히 내 언어로 표한하기는 어려운 지점이 있다. 이 공부를 하면서 express나 axios, cors, express-session, 등등 여러가지를 알아야 흐름을 이해할 수 있다보니 부족한 부분이 생기면 이해하기가어려웠다. 빠릴 조금씩 부족한 부분을 메워나가면서 익숙해져야겠다.

profile
기록을 중요하게 생각하는 사람입니다. 학습한 내용을 정리한 것이라 잘못된 정보가 있을 수 있습니다. 잘못된 정보는 언제든 말씀해 주시기 바랍니다.
post-custom-banner

0개의 댓글