원본 본문으로 이동하기

크로스도메인 Ajax 접근시 세션(쿠키)가 동기화 되지않는 이유.

박용서 - 가리사니의 파일함을 만들때 파일함은 별도의 파일서버에 저장하고 Ajax으로 해당 파일서버에 직접 파일을 올리는 것을 만들고 있었습니다. 그런데 가리사니와 가리사니-파일서버간의 세션이 틀어져 서로 다른 세션을 가지고 있게되었습니다. 처음에는 세션-클러스터서버의 문제인줄 알았는데 구글링을 하다가 새로운 사실을 알게되었습니다. 만일 서로다른 도메인의 쿠키(세션아이디가 저장된:앞으로생략)값을 공유할 경우 Access-Control-Allow-Origin 허용되었으며, 로그인되어있는 사이트들의 정보를 탈취할 수 있는 일이 발생합니다. 때문에 브라우저에선 이를 허용하지 않고 별도의 세션아이디를 생성하게 됩니다. (물론 양쪽사이트이 쿠키 접근을 허용하고 ajax해더에 쿠키값을 삽입하여 보내는 방법이 있긴하지만... 보안상 절대 쓰지않기를 권장합니다.) 해결법으로는 데이터베이스를 두고 자신을 인증할 충분히 긴 난수를 생성하여 키값으로 보내 주고 받도록 하는 방법이 있습니다. - HTTP 자바스크립트