2013-05-17 16 views
5

Bir web çalışanının güvenilir olmayan javascript kodunu sanallaştırmak için güvenli bir yol olup olmadığını merak ediyordum. Örneğin, geliştiricilerin yeni çizim araçlarını uygulayabilecekleri bir çizim uygulaması bağlamında, kodlarını bir web çalışmasına yerleştirebilir ve kullanıcının tuvali tıkladığında, imleç konumunu içeren bir JSON mesajı gönderebilir ve görüntü verisi dizisi ve komut tamamlandığında, yeni görüntü verilerini içeren bir mesaj iletir.Web çalışanlarının güvenilir olmayan bir şekilde engellenmesi javascript kodu için güvenli bir yoldur

Bu güvenli midir yoksa düşünmediğim riskler var mı?

+0

[WebWorkers'ı güvenli bir ortam oluşturma] bölümüne bakın (http://stackoverflow.com/q/10653809/1048572) – Bergi

cevap

2

Buradaki sorun, geliştiricilerin DOM erişimini beklemesidir. Tüm kod yalnızca veri için olmadığı sürece Web Çalışanlarının DOM'ı işlemesine izin verilmez.

JSFiddle öğesinin iframe'lerde nasıl çalıştığına benzer şekilde, uygulamanın tamamını ana alandan korumalı olarak öneririm. Bu şekilde, potansiyel olarak tehlikeli olan tüm kodlar yalnızca bu çerçevede çalışabilirken, girişler gibi diğer şeyler de çerçevenin dışında, potansiyel olarak tehlikeli kodun dışındaki ana alanda ele alınır.

En iyisi, sadece güvenli kod ekleyin. Ana uygulamanızda birleştirmeden önce kodu gözden geçirin.

5

DOM, Web çalışanları için geçerli değildir, ancak indexedDB gibi aynı kaynaklardan yararlanabilmek mümkündür. Bu benim ilgili soruya bakın:

http://www.html5rocks.com/en/tutorials/security/sandboxed-iframes/

Ayrıca sürecini kolaylaştırır ve sağlar Kitaplığıma bakmak:

Can workers be secure enough for an untrusted code

güvenli yolu iframe'den sandbox niteliğini kullanmaktır sandbox ile uygun bağlantı (mesajlaşma yerine işlev dışa aktarma):

https://github.com/asvd/jailed

İlgili konular