AJAX, 하위 도메인 및 SSL
foo.com 라는 사이트가 있는데 agax request to bar.foo.com .이게 먹힐까요?
또한 foo가 안전한 연결이라면 https, bar.foo.com 도 https가 되어야 합니까?이 두 사이트는 서로 다른 인증서를 사용할 수 있습니까?
plean-http AJAX의 경우: 브라우저에서 허용되지 않는 교차 도메인 XMLHttpRequest를 수행하는 것을 의미합니다.향후 안전한 방식으로 구현하기 위해 W3C 제안이 보류 중이지만(IE8, IIRC에서 부분적으로 구현), 현재로서는 확실히 불가능합니다.
그러나 안전하게 수행하기 위한 해결 방법으로 서브스페이스(iframe 사용)라는 해결책이 있습니다.document.domain
, fragment identifier 기법 (다시, iframe을 사용) 및 기법 (다시, iframe!)
SSL에 관한 한 도메인과 하위 도메인에 대한 별도의 인증서를 구입하거나 이 두 가지를 모두 포함하는 단일 와일드카드(*.foo.com ) 인증서를 구입할 수 있습니다(naturally를 들어 와일드카드 인증서는 더 비쌀 것입니다).
다른 도메인에서 항목을 요청하는 HTTPS 페이지가 있다면 모든 것이 HTTPS인 이상 모든 것이 잘 될 것입니다.즉, iframe 해결 방법 중 하나를 사용하는 경우에는https://
스킴 URL을(를) 지정합니다.src
iframe입니다의 입니다.
효율성이 떨어지는 마지막 해결책은 스크립트를 사용하는 것입니다.https://foo.com
안전하지 않은 사람들에게 요청을 대행해 주는 거죠http://bar.foo.com
문제도 해결하므로은 무시할 수 (이는 XHR 교차 도메인 문제도 해결하므로 다른 해결 방법은 무시할 수 있습니다.)물론 XHR 요청서를 보내신다는 뜻입니다.https://foo.com/someurl
, 그 다음에 치고 있습니다.http://bar.foo.com/someurl
, 응답을 받은 후 브라우저로 다시 전송하므로 성능 측면에서 bar.foo.com 의 서버측 기능을 foo.com 로 옮기는 것이 훨씬 좋습니다.하지만 서버 스크립트를 이동할 수 없다면 프록시를 사용하는 것이 방법입니다.
편집: 몇 가지 추가 테스트를 수행하고 iframe AJAX 해결 방법(#fragment identifier 1)을 얻어 서로 다른 HTTPS 도메인에서 작동한 후 마지막 3개의 그래프를 변경했습니다.iframe을 사용하여 SSL 크로스 도메인 AJAX를 수행할 수 있습니다.https
그리고.https
iframe에서 scheme이 사용됩니다.src
요약:
- 단답: 아니오, 실제 교차 도메인 XHR은 허용되지 않습니다.
- iframe을 사용한 해결 방법: 효율성 향상, SSL 인증 2개(또는 와일드카드 인증) 필요, 다소 복잡함
- 프록시를 사용한 해결 방법: 효율성이 떨어지며 1개 또는 2개의 SSL 인증서(1개는 backend request to bar)를 사용할 수 있습니다.http를 통한 foo.com ), 다소 복잡한.
대부분의 브라우저는 보안/개인 정보 보호 설정에 따라 외부 통화를 차단하고 동일한 도메인으로 AJAX 통화만 허용합니다.하위 도메인조차도 차단됩니다. 공유 환경에서는 실제 위협이 될 수 있기 때문입니다.
간단히 말해, 동일한 도메인을 통해서만 AJAX 호출(아마도 페이지 호출, 다시 다른 도메인에서 다른 페이지 호출)을 수행하지 않으면 문제가 발생합니다.이는 사용 중인 SSL이나 동일한 SSL에 상관없이 SSL을 사용하더라도 통화가 차단된다는 SSL 질문에도 대답합니다.
네, 두 도메인 모두 다른 인증을 받을 수 있습니다.이 모든 것은 사용자가 구성 방법이 달라집니다.
foo.com 에 대한 웹 서버를 구성할 수 있으며 비보안의 경우 포트 80을 열고 보안의 경우 포트 443을 열고 둘 다 사용할 수 있습니다.
bar.foo.com 에 대해 다른 웹 서버를 구성하고 동일한 포트 구성을 수행할 수 있습니다.
두 도메인 모두에서 안전한지 확인해야 하는 경우 각 도메인에 대한 인증서를 받아야 합니다.
하나의 인증서를 다른 사이트에 복사하여 사용할 수 있는 *.foo.com 인증서를 구입할 수도 있습니다.
요청이 http://bar.foo.com 에 연결되더라도 안전하게 연결되지 않습니다.
웹 서버에 포트 443을 사용하도록 지시하고 인증서의 유효성을 확인하려면 http "s"가 있어야 합니다.
인증은 소스를 신뢰할 수 있다고 말하는 것뿐입니다.신뢰할 수 없고 http "s"를 사용하고 브라우저에 잠금이 있더라도 데이터는 암호화됩니다.
JavaScript TLS와 Flash를 결합하여 안전한 도메인 간 요청을 수행할 수 있습니다.이렇게 하면 방문자가 https://foo.com 로 이동하고 https://bar.foo.com 으로 XmlHttp Requests를 할 수 있습니다.일반 http에서도 동일한 작업을 수행할 수 있습니다.
방문자의 브라우저에서 foo.com 에 대해 신뢰할 수 있는 SSL 인증서를 구입해야 하지만 bar.foo.com , bar2에 대해 고유한 SSL 인증서를 생성할 수 있습니다.foo.com 등무료로 SSL 인증서를 생성하는 대신 더 비싼 대안은 *.foo.com 에 대한 와일드카드 SSL 인증서를 구입하는 것입니다.그러나 foo.com 을 통해 해당 사이트에 도메인 간 요청만 하는 경우에는 추가 비용을 지출할 필요가 없습니다.
github에서 오픈소스 포지 프로젝트를 확인해보세요.
http://github.com/digitalbazaar/forge/blob/master/README
마지막에 있는 블로그 링크는 좀 더 깊이 있는 설명을 제공합니다.
예, 크로스 도메인 아약스 제출을 가장 확실하게 수행할 수 있습니다.ssl.com 와일드카드 인증을 사용하여 동일한 설정을 수행했지만 2개 사이트에서 2개의 표준 인증을 사용할 수 있습니다.
기본적으로 JSONP(yahoo, google, fb 등)를 사용하게 됩니다.반환 값은 함수로 감싸져 있고 다음과 같이 보입니다.
someFunction("{...}");
언급URL : https://stackoverflow.com/questions/231478/ajax-subdomains-and-ssl
'bestsource' 카테고리의 다른 글
웹소켓:죽은 후 자동으로 다시 연결하는 방법 (0) | 2023.10.31 |
---|---|
Visual Studio Server Explorer는 사용자 지정 데이터베이스 공급자를 지원합니까? (0) | 2023.10.31 |
객체 배열에서 속성이 검색과 일치하는 객체의 인덱스를 찾는 가장 빠른 방법 (0) | 2023.10.31 |
자바스크립트 폐쇄가 가비지 수집 방법 (0) | 2023.10.31 |
환경의 현재 로케일을 가져오는 방법은 무엇입니까? (0) | 2023.10.26 |