타사 API (x.apisite.com
및 y.apisite.com
에 있음)에 액세스해야하는 Javascript가있는 웹 앱을 작성하고 있습니다. XMLHTTPRequest
을 사용했지만 내 로컬 서버에서 파일을 제공 할 때 동일한 출처 정책으로 인해 실패합니다.DNS 속임수로 같은 출처 정책을 외면 함
이제이 웹 앱은 내 모바일 장치에 설치되어 다운로드 된 파일이 캐시됩니다. 그래서 내 DNS 항목을 x.apisite.com
과 y.apisite.com
으로 변경했습니다. 그런 다음 파일을 다운로드 한 다음 DNS 항목을 올바른 항목으로 다시 변경합니다. 나는 브라우저가 스크립트가 *.apisite.com
에서 다운로드되었다고 생각했기 때문에 을 *.apisite.com
으로 만들 수 있다고 생각했습니다. 그러나 이것이 사실 인 것처럼 보이지는 않습니다. 여전히 동일한 출처 정책 오류가 발생합니다.
내가 뭘 잘못하고 있니?
는 여기에 내가 뭘하는지의 기본적인 생각 : script-0.js
에서
<!DOCTYPE html>
<html>
<head>
<!-- this will actually be downloaded from my own local server -->
<script src="http://x.apisite.com/script-0.js">
<script src="http://y.apisite.com/script-1.js">
...
가, 내가 XMLHTTPRequest
x.apisite.com
에을하고, 마찬가지로 script-1.js
에, 나는 y.apisite.com
에 액세스 할 수 있습니다.
"브라우저가'* .apisite.com '에서 스크립트를 다운로드했다고 생각했기 때문에'XMLHTTPRequests'를'* .apisite.com'으로 만들 수 있습니다 * * - 클라이언트 측 스크립트의 출처는 동일한 출처 규칙과 관련이 없습니다. SOP 용어에서 소스 출처는 항상 스크립트를로드하고 일부 작업을 수행하는 실제 페이지 *의 출처입니다. DNS 속임수로 도망 갈 수는 있지만, 브라우저가 속임수를 써서 HTML 페이지 자체가 'apisite.com'에 있다고 생각하면됩니다. – apsillers