Soru AJAX, Alt Alanlar ve SSL


Bar.foo.com'a ajax istekleri yapan foo.com sitesi var. Bu işe yarayacak mı.

Ayrıca, eğer foo güvenli bir bağlantı ise, https, bar.foo.com'un da https olması gerekir mi? Bu iki site farklı sertifikalar kullanabilir mi?


17
2017-10-23 20:52


Menşei




Cevaplar:


Plain-http AJAX ile: Tarayıcılar tarafından izin verilmeyen, etki alanları arası XMLHttpRequest ile ilgili konuşuyorsunuz. Orada bir W3C teklifi beklemede Bunu gelecekte güvenli bir şekilde uygulamak (kısmen IE8, IIRC tarafından uygulanmaktadır), ancak şu anda kesinlikle mümkün değildir.

Bununla birlikte, bunu güvenli bir şekilde yapmak için geçici çözümler vardır: Altuzay (iframe'ler ve document.domain), fragman tanımlayıcı tekniği (yine, iframe kullanır) ve window.name teknik (yine, iframe!).

SSL devam ettiği sürece, alan ve alt alan için ayrı sertifikalar veya her ikisini de kapsayan tek bir joker (* .foo.com) sertifikasını satın alabilirsiniz (doğal olarak joker kartı daha pahalı olacaktır).

Diğer etki alanlarından öğe isteyen bir HTTPS sayfanız varsa, her şey HTTPS olduğu sürece her şey iyi olacaktır. Bu, iframe geçici çözümlerinden birini kullanırsanız, bir https:// şema URL'sinde src iframe özniteliği.

Son, daha az verimli bir çözüm, üzerinde bir betik bulundurmaktır. https://foo.com Proxy'lerin güvensizlik talepleri http://bar.foo.com. (Bu ayrıca, XHR etki alanları arası sorunu da çözer, böylece diğer geçici çözümleri görmezden gelebilirsiniz.) Elbette, bu XHR isteğini göndereceğiniz anlamına gelir. https://foo.com/someurl, o zaman vurmak http://bar.foo.com/someurlyanıtı almak ve tarayıcıya geri göndermek, böylece performans seçeneğiniz var, eğer bu seçeneğe sahipseniz, bar.foo.com'un sunucu tarafındaki işlevselliğini foo.com'a taşıyorsunuz. Ancak, sunucu komut dosyasını taşıyamazsanız, proxy işlemi devam etmektir.

DÜZENLE: Son 3 grafiği, bazı ek testler yaptıktan ve farklı HTTPS etki alanlarında çalışmak üzere bir iframe AJAX geçici çözümü (#fragment belirleyici) aldıktan sonra değiştirdim. Sen kutu her şeyi olduğu sürece iframe'leri kullanarak SSL etki alanları arası AJAX yapmak https ve https şema iframe içinde kullanılır src. Özetleme:

  1. Kısa cevap: hayır, gerçek alanlar arası XHR'ye izin verilmiyor
  2. İle geçici çözüm iframe'ler: daha verimli, 2 SSL'ye ihtiyaç duyar Sertifikalar (ya da joker cert), biraz karmaşık
  3. Proxy ile geçici çözüm: Daha az verimli, 1 veya 2 ile yapabilir SSL sertifikaları (1 arka plan isteği ile http üzerinden bar.foo.com adresine), biraz karmaşık

22
2017-10-23 21:57





Çoğu tarayıcı güvenlik / gizlilik ayarlarına bağlı olarak yapılan tüm çağrıları engeller ve sadece AJAX çağrılarının aynı alana yapılmasına izin verir. Alt alanlar bile engellenir, çünkü paylaşılan ortamlarda gerçek bir tehdit oluşturabilirler.

Kısacası: sadece AJAX'ı aynı alan üzerinden (belki de başka bir alandan başka bir sayfadan başka bir sayfa çağırır - curl / fopen / ... aracılığıyla) çağırırsınız veya sorunlara girersiniz. Bu aynı zamanda SSL sorunuzu da yanıtlıyor - hangi SSL'yi kullandığınız önemli değil ya da aynı olup olmadıkları - SSL'ye rağmen aramalar engellenecek.


0
2017-10-23 20:58





Evet, her iki alan için farklı sertifikalar alabilirsiniz. Yapılandırmaya nasıl karar verdiğiniz her şeydir.

Foo.com için bir web sunucusu yapılandırabilirsiniz ve güvenli olmayan ve bağlantı için 44 numaralı bağlantı noktasını güvenli bir şekilde açabilir ve her ikisini de kullanabilirsiniz.

Bar.foo.com için farklı bir web sunucusu yapılandırabilir ve aynı bağlantı noktası yapılandırmalarını yapabilirsiniz.

Her ikisinde de güvende olmanız gerekiyorsa, her farklı alan için sertifika almanız gerekir.

Bir sertifikayı diğer siteye kopyalamanızı ve kullanabilmenizi sağlayan bir * .foo.com sertifikası alabilirsiniz.

İsteğiniz linke bağlı değilse http://bar.foo.com güvenli bir bağlantınız olmayacak.

Web sunucusuna 443 numaralı bağlantı noktasını kullanmasını ve sertifikayı doğrulamayı denemesini sağlamak için http 'lar var.

Tüm certs gerçekten yapmak kaynak güvenilir olduğunu söylüyor. Güvenilir olmasa ve http "lar" kullanıyor olsanız ve tarayıcıda bir kilit varsa, verileriniz zaten şifrelenir.


0
2017-10-23 21:02





Güvenli çapraz etki alanı isteklerini gerçekleştirmek için JavaScript TLS ve Flash'ı birleştirebilirsiniz. Bu şekilde ziyaretçileriniz https://foo.com ve XmlHttpRequests öğesini https://bar.foo.com. Aynı şeyi normal http ile de yapabilirsiniz.

Ziyaretçilerinizin tarayıcılarının foo.com'a güveneceği bir SSL sertifikası satın almanız gerekir, ancak bar.foo.com, bar2.foo.com, vb. İçin kendi SSL sertifikalarınızı oluşturabilirsiniz. Kendi başınıza üretmek için daha pahalı bir alternatif SSL sertifikaları (ücretsiz) * .foo.com için bir joker SSL sertifikası almaktır. Ancak, bu sitelere foo.com aracılığıyla yalnızca etki alanları arası istekler yapıyorsanız, o zaman bu ekstra parayı harcamanıza gerek yoktur.

Github'daki açık kaynak forge projesine göz atın:

http://github.com/digitalbazaar/forge/blob/master/README

Sonunda blog linkleri daha ayrıntılı bir açıklama sağlar.


0
2017-07-22 17:25





Evet kesinlikle çapraz alan ajax gönderebilirsiniz. Aynı kurulumu bir ssl.com joker karakteri ancak 2 sitede 2 standart sertifikayı kullanabilirsiniz.

Temel olarak JSONP kullanacaksınız (yahoo, google, fb, vb.). Dönüş değeri, amd gibi görünen bir işleve sarılır

someFunction("{...}");

0
2018-02-11 16:14