İçerik Güvenliği Politikası

İçerik Güvenliği Politikası'na (İGP) aşina değilseniz İçerik Güvenliğine Giriş Politika iyi bir başlangıç noktasıdır. Söz konusu belgede CSP'nin web platformu görünümünün geneli ele alınmıştır; Chrome Uygulaması CSP pek esnek değildir.

CSP, siteler arası komut dosyası çalıştırma sorunlarını azaltan bir politikadır ve hepimiz biliyoruz ki siteler arası her zaman kötüdür. Sizi, CSP'nin samimi ve pratik bir politika olduğuna ikna etmeyeceğiz. Birtakım işler de var. temel görevlerin nasıl farklı şekilde yapılacağını öğrenmeniz gerekir.

Bu dokümanın amacı, Chrome Uygulamaları için İGP politikasının tam olarak ne olduğunu, yapmanız gerektiğini ve bu temel görevleri CSP uyumlu.

Chrome Uygulamaları için İGP nedir?

Chrome Uygulamaları'nın içerik güvenliği politikası, şunları yapmanızı kısıtlar:

  • Chrome Uygulaması sayfalarınızda satır içi komut dosyası kullanamazsınız. Kısıtlama, her iki <script> bloğu da yasaklar ve etkinlik işleyiciler (<button onclick="...">).
  • Uygulama dosyalarınızda (video ve ses hariç) harici kaynaklara referans veremezsiniz kaynaklar). Bir iframe'e harici kaynaklar yerleştiremezsiniz.
  • eval() ve new Function() gibi dizeden JavaScript'e yöntemleri kullanamazsınız.

Bu işlem, aşağıdaki politika değeri aracılığıyla uygulanır:

default-src 'self';
connect-src * data: blob: filesystem:;
style-src 'self' data: 'unsafe-inline';
img-src 'self' data:;
frame-src 'self' data:;
font-src 'self' data:;
media-src * data: blob: filesystem:;

Chrome Uygulamanız, medyalar hariç olmak üzere yalnızca uygulamanızdaki komut dosyalarına ve nesnelere referans verebilir. dosyalar (uygulamalar, paket dışındaki video ve seslere referans verebilir). Chrome uzantıları ile rahatlamanızı sağlar varsayılan İçerik Güvenliği Politikası Chrome Uygulamaları bunu yapmaz.

İGP'ye uygunluk nasıl sağlanır?

Tüm JavaScript ve kaynaklar yerel olmalıdır (her şey Chrome Uygulamanızda paketlenir).

"Peki ben şunu nasıl yaparım..."

Şablon oluşturma kitaplıkları kullanıyor olabilirsiniz ve bu kitaplıklardan birçoğu CSP ile çalışmaz. Uygulamanızdaki harici kaynaklara da (harici resimler, web sitelerindeki içerikler) erişmek isteyebilirsiniz.

Şablon oluşturma kitaplıkları kullanma

Önceden derlenmiş şablonlar sunan bir kitaplığı kullanarak hazırsınız demektir. Şu özelliklere sahip bir kitaplığı kullanmaya devam edebilirsiniz: önceden derleme seçeneği sunmaz ancak bazı işlemler yapmanız gerekir ve bazı kısıtlamalar vardır.

"Eval" yapmak istediğiniz içerikleri izole etmek için korumalı alanı kullanmanız gerekir. sahip olacaksınız. Korumalı alan, belirttiğiniz içerikte CSP'yi artırır. Chrome'un çok güçlü bir sürümünü kullanmak istiyorsanız Chrome Uygulamanızdaki API'ler kullanıyorsanız korumalı alandaki içeriğiniz bu API'lerle doğrudan etkileşimde bulunamaz (bkz. Korumalı alan yerel içeriği).

Uzak kaynaklara erişim

Uzak kaynakları XMLHttpRequest aracılığıyla getirebilir ve blob:, data: veya filesystem: URL (Harici kaynakları referans gösterme bölümüne bakın).

Video ve ses, aşağıdaki durumlarda iyi yedek davranışlara sahip oldukları için uzak hizmetlerden yüklenebilir: veya kesintili bağlantı sorunu yaşıyor olabilirsiniz.

Web içeriği yerleştirme

Bir iframe kullanmak yerine, bir web görünümü etiketi kullanarak harici bir URL'yi çağırabilirsiniz (bkz. harici web sayfaları) bulabilirsiniz.