쿠키와 세션 이야기

2423 단어 쿠키session

쿠키란?



보안 용어집 - 쿠키란 무엇입니까?

쿠키는 사용자 설정에 대한 정보를 유지하기 위해 웹 사이트에서 사용자의 PC에 저장하는 작은 파일입니다. 쿠키를 사용하면 사이트가 사용자의 개인 설정을 기억하게 하거나 사이트에 액세스할 때 로그인을 생략하여 편리성을 높일 수 있습니다. 그러나 일부 쿠키는 사용자가 방문하는 사이트를 추적하여 개인 정보를 침해할 수 있습니다.
~~ 마이크로소프트보다

그렇습니다.

즉, 사용자가 서버에 대해 뭔가 요청을 했을 때 응답과 동시에 반환해주는 일련의 정보입니다.
여기에는 사용자 정보(예: session_id)가 포함됩니다.
이것을 사용하는 것으로, 사용자는 다음에 로그인할 때에, 자동적으로 id를 넣어 주거나, 무엇이든 자동 로그인도 해 주기도 합니다.


               ↑↑↑
응답할 때 쿠키 정보도 브라우저에 전달

쿠키를 다룰 때의 주의점적인 이야기(db로 대응)



이런 편리한 쿠키이지만, 취급할 때는 궁리하거나 대책할 필요도 있습니다.
물론 아래의 예 이외에도 여러가지 패턴이 있다고 생각하므로, 앞으로 조사해 나가고 싶습니다.

사용자 편의성 향상



서버를 여러 대 이용할 때를 생각합니다. 큰 서비스가 되면 이렇게 여러 대가 될 수 있습니다.



다이어그램의 중앙에 있는 로드 밸런서는 부하 분산 시스템으로 하나의 서버에 부하가 집중되는 것을 방지합니다.
보통이라면 위 섹션에서 말한 것처럼 요청을 내고 응답이 오는 타이밍에 쿠키가 저장되므로 하나의 웹 서버에서는 쿠키를 사용할 수 있습니다. 그러나 여러 웹 서버를 사용하는 경우 한 웹 서버에 쿠키를 저장할 수 있지만 다른 서버에는 쿠키를 저장할 수 없다는 현상이 발생할 수 있습니다. 그렇게 되면 이전 로그인했는데 쿠키가 저장되어 있지 않고 다시 로그인해야 한다는 것입니다.

그래서. . . .



db(예에서는 redis)를 준비하여 쿠키 정보를 통합할 수 있습니다. 그렇게 하면 비록 하나의 서버에 밖에 로그인하고 있지 않아도, 다른 서버에 액세스했을 때에 확실히 로그인한 동작을 실시할 수가 있습니다.

보안 강화



다음은 보안 이야기입니다. 유명한 곳에서 말하면 세션 하이재킹 등이 쿠키에 관여합니다.

쿠키 중에는 session_id라고 하는 id가 있어, 그것을 이용해, 「이 유저는 이전에 이 조작을 한 유저다」라는 것을 알게 됩니다.
그러나이 session_id를 훔치면 그 사람이 될 수 있습니다.
그러므로 session_id와 그것에 묶는 컬럼을 redis에 저장함으로써 그러한 공격을 막을 수 있습니다.



더 나은 서비스를 위해



이것들은 단순히 움직일 뿐만 아니라, 보다 유저빌리티를 올리기 위해서는 어떻게 하면 좋은가를 생각하는 시책이 됩니다.
그러므로, 간단히 쓸 뿐만 아니라, 이런 곳에도 주의를 나눌 수 있게 되어 가고 싶습니다.

좋은 웹페이지 즐겨찾기