ile 'new Function' özelliğini etkinleştirin Web Çalışanı'nda çalışmak için new Function
alıyorum konusunda sorun yaşıyorum. Web Çalışanı üreten bir HTML sayfam var. Bu Web Çalışanı, kodu new Function(str)
üzerinden yürütür. Bunu, bildirimde korumalı bir sayfa olarak açıkça listelenecek eval
benzeri bir kod kullanan bir sayfa gerektiren paketlenmiş bir Chrome uygulamasında kullanmaya çalışıyorum.Bir Web Çalışanı'nda CSP
- listesine korumalı alan edilecek sayfasını yapın:
Şimdi, iki seçenek vardır. Bunu yaparsam
new Function
kullanabilirim, ancak Web İşçisi oluşturamıyorum çünkü herhangi bir istekte bulunamıyorum (korumalı sayfa benzersiz bir kaynağa sahip).new Worker(...)
,SECURITY_ERR
'u atar. nedeniyle benzersiz kökeni new Worker
sanal alanında başarısız sanal alandanew Function
eserler
- değil listesine korumalı alan olması sayfasını yapın. Bunu yaparsam, bir Web Çalışanı oluşturabilirim ancak çalışan, korumalı olmadığı için
new Function
kullanamaz.new Function(...)
, kullanımı hakkında şikayet eden birEvalError
atıyor.new Function
nedeniyle dışı sanal alandaeval
benzerinew Worker
eser olmasının dışı sanal alanda başarısız
şöyle My CSP geçerli:
sandbox allow-scripts script-src 'self' 'unsafe-eval'; object-src 'self'
Yaparsam ne Bir Web Çalışanı'nda çalışan new Function
almak için?
Bu 'data:' URL'lerinin aynı kökenli sorunlar nedeniyle çalışmadığı ortaya çıktı, ancak bloblardan 'createObjectURL' URL'leri (makaleden) çalışıyor. Tüm çalışan komut dosyasını ana sayfaya sığdırmak çok kolay değil, ancak çalışmanın tek yolu gibi görünüyor. Teşekkürler. – pimvdb
Şimdi görebiliyorum ki, yanıt için nesne URL'si yerine veri URL'si kullandım, bunun için üzgünüm. Bunu daha uygun hale getirmek için bir inşa adımı yapabilirsiniz. – molnarg