다른 도메인 내부에 쿠키 생성하기 (이게 가능해???)
최근 쿠키매칭시스템 설계를 위해 광고 프로세스 전반에 대한 내용을 학습중 우리 도메인 쿠키 내부에
다른 도메인 쿠키값들이 박혀있는 걸 발견하였다.
뭐야 이거 어떻게 박는거야? 크로스도메인 이슈 때문에 당연히 안될거라고 생각했었는데 심지어 여러 도메인들 쿠키값들이 박혀있었다....
위의 캡쳐화면을 보면 cloud.toast.com 페이지에 들어갔는데 toast.com쿠키 내부를 보면 .toast.com말고도 여러 도메인들의
쿠키값들이 설정되어있는 것을 보았다.
어떻게 이게 가능하단 말인가????
근데 가능하다는거....실제로 구현을 해보고서도 좀 신기하긴했다...
방법은 다음과 같다.
해당 페이지의 html에 다른 도메인을 호출하는 호출하는 태그를 심는다. 이 때 태그는 <img>, <a> 태그가 가능하다.
다음을 보자.
local.media.com(내가 호스트에 등록해 띄운 페이지) 도메인의 페이지 내부에는 다음과 같은 태그를 박았다.
이렇게 박았을 경우 페이지가 렌더링되는 시점에 해당 도메인의 서버에 요청이 가게 된다.
요청을 받은 해당 도메인의 서버에서 요청을 받아 내부에서 쿠키를 생성하면 다른 도메인 쿠키 내부에 본인들의 쿠키값을 설정할 수 있는 것이다.
local.toast.com:8082/dsp/request 컨트롤러에서 요청을 쿠키를 만들어주게 되면
내가 생성한 쿠키 값이 박히는걸 볼 수 있다.
만약 다른 도메인의 iframe을 박아 렌더링 하게 된다면 해당 도메인의 쿠키가 하나 더 생기게 된다.
iframe으로 local.doubleclick.com:8080/adx/request를 요청해보자
이번에는 local.media.com쿠키 내부에 값이 생성되는게 아니고 별도의 local.doubleclick.com쿠키가 생성된 것을 볼 수 있다.
물론 어떻게 쿠키를 심든간에 httpServletRequest로 request를 받아 cookie를 얻어오게되도 본인
서브도메인에 일치하는 쿠키값만 받아올 수 있다!!!(당연당연)
'Programming > Java,Spring' 카테고리의 다른 글
[ Java ] 자바 nanotime(나노시간)을 second(초)로 변환하기 (0) | 2018.02.06 |
---|---|
[ Spring boot ] 스프링부트(Springboot) jsp파일 수정하고 웹에 바로 반영하기 (0) | 2018.01.30 |
[ Spring ] 스프링부트 java.lang.IllegalArgumentException: An invalid domain Error 해결 (0) | 2018.01.23 |
[ Spring ] debug모드 실행시 unknown host 에러발생 (0) | 2017.12.26 |
[ JAVA ] java.sql.SQLException: Before start of result set 오류 처리 (1) | 2017.10.26 |