2016-04-06 8 views
1

Window.postMessage ve iframe ile ilgili olarak bulduğum pek çok içerik, etki alanları arası iframe iletişimi geçmiş gibi görünüyor.Modern tarayıcılar için 2016'dan sonra window.postMessage API kullanmamamın bir nedeni var mı?

Modern tarayıcılar için> = IE9 .. vanilla js gibi görünüyor window.postMessage yeterli olur. EasyXDM veya diğerleri gibi daha büyük bir paket kullanarak.

http://caniuse.com/#search=postMessage

ben eksik? çoğunlukla güvenlik sorunu

cevap

0

Onun: (örneğin dahil, http://evil.example.com)

Herhangi pencere başka bir pencere bir mesaj gönderebilir ve bilinmeyen bir gönderici zararlı iletiler göndermez hiçbir garantileri mevcut. Kimliği doğrulanmış olsa da, her zaman alınan iletinin sözdizimini her zaman doğrulamanız gerekir. Aksi halde, yalnızca güvenilir iletiler göndermeyi seçtiğiniz sitedeki güvenlik deliği, sitenizde bir siteler arası komut dosyası oluşturma deliğini açabilir. Eğer postMessage kullanarak göndermiş eğer

yanında, bir kötü niyetli site tarafından yakalanmadan söz konusu verinin kendinizi aç:

Kötü niyetli sitesi bilginiz dışında pencerenin yerini değiştirebilir ve bu nedenle bunu postMessage kullanarak gönderilen verileri engelleyebilir.

Ayrıca, aktarım parametresi, isteğe bağlı iken, tüm tarayıcılarda standart değildir:

otherWindow.postMessage(message, targetOrigin, [transfer]); 

Link to MDN docs

+2

Eğer düzgün API kullanmak olmadığında ortaya işaret güvenlik sorunları - Göndereni doğrulamak veya bir örnek hedef belirlememek için başarısız veya ihmal. Doğru kullanıldığında, makalede belirtildiği gibi güvenlidir. –

+0

100% katılıyorum - 'if' anahtar kelimesi – JordanHendrix

İlgili konular