Chrome'da İçerik Güvenliği Politikası nasıl rahatlatılır?


18

Son zamanlarda, Facebook gibi bazı web siteleri , komut dosyalarının "güvenilmeyen kaynaklardan" yüklenmesini kısıtlamak için İçerik Güvenliği Politikası'nı (CSP) kullanır. Örneğin, Facebook HTML içeriği isterken (örn. Https://www.facebook.com ), Facebook'un HTTP yanıtı aşağıdaki yanıt başlığını içerir:

x-webkit-csp:default-src *;script-src https://*.facebook.com http://*.facebook.com https://*.fbcdn.net http://*.fbcdn.net *.facebook.net *.google-analytics.com *.virtualearth.net *.google.com 127.0.0.1:* *.spotilocal.com:* chrome-extension://lifbcibllhkdhoafpjfnlhfpfgnpldfl 'unsafe-inline' 'unsafe-eval' https://*.akamaihd.net http://*.akamaihd.net;style-src * 'unsafe-inline';connect-src https://*.facebook.com http://*.facebook.com https://*.fbcdn.net http://*.fbcdn.net *.facebook.net *.spotilocal.com:* https://*.akamaihd.net ws://*.facebook.com:* http://*.akamaihd.net;

Bunun, güvenilmeyen kaynaklardan Javascript kitaplıkları yüklemesi ve yürütmesi gereken bazı yer işaretleri üzerinde etkisi vardır.

Örneğin, bir Facebook sayfasında Bağlantıları Göster yer işaretini çalıştırmaya çalıştığımda, güvenilmeyen bir kaynaktan jQuery yüklemeye çalışırken bu yer işaretinin yürütülmesi başarısız olur. Chrome'un Geliştirici konsolunda şunu söyleyecektir:

Refused to load the script 'http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js' because it violates the following Content Security Policy directive: "script-src https://*.facebook.com http://*.facebook.com https://*.fbcdn.net http://*.fbcdn.net *.facebook.net *.google-analytics.com *.virtualearth.net *.google.com 127.0.0.1:* *.spotilocal.com:* chrome-extension://lifbcibllhkdhoafpjfnlhfpfgnpldfl 'unsafe-inline' 'unsafe-eval' https://*.akamaihd.net http://*.akamaihd.net".

Bu konuyla ilgili bir Chrome dokümantasyon sayfası buldum, ancak yalnızca Chrome uzantıları için geçerlidir .

Bana izin veren çözümler arıyorum

  • ya bir kez CSP'yi devre dışı bırakın
  • veya güvenilir kaynaklarımı kalıcı olarak beyaz listeye ekleyin.


@Rudie Chrome Mobile için işe yarayacak mı?
Michael

@Michael Chrome Mobile modern ish uzantılarını destekliyorsa. WeRequest biraz yenidir. Chrome Mobile kullanmıyorum, bu yüzden hiçbir fikrim yok.
Rudie

Yanıtlar:


2

Chrome Uygulamaları Tarafından Onaylanan Yöntemler

Şablon kitaplıkları kullanma

Önceden derlenmiş şablonlar sunan bir kütüphane kullanın ve hazırsınız. Yine de ön derleme sunmayan bir kitaplık kullanabilirsiniz, ancak sizin açınızdan biraz çalışma gerektirecektir ve kısıtlamalar vardır.

Yapılacak şeyleri 'değerlendirmek' istediğiniz herhangi bir içeriği izole etmek için korumalı alan kullanmanız gerekecektir. Korumalı alan, CSP'yi belirttiğiniz içerikten kaldırır.

Korumalı alan yerel içeriği

Korumalı alan, belirtilen sayfaların korumalı, benzersiz bir kaynakta sunulmasına olanak tanır. Bu sayfalar daha sonra İçerik Güvenliği Politikasından muaftır. Korumalı alandaki sayfalar iframe'leri, satır içi komut dosyalarını ve eval () kullanabilir (ve son ikisi engellenenlerdir). Bu, 'güvensiz-satır içi' ve 'güvensiz-değerlendirme'yi düzeltir.

  • Korumalı alanda satır içi komut dosyaları kullanma
  • Sandbox'ı manifest'e dahil et

Uzak kaynaklara erişin

Uzak kaynakları XMLHttpRequest yoluyla getirebilir ve blob :, data: veya dosya sistemi: URL'leri aracılığıyla sunabilirsiniz. Bu, jQuery getirme sorununu çözmelidir.

Bildirim gereksinimi

Çapraz kaynak oluşturabilmek XMLHttpRequestsiçin, uzak URL'nin ana bilgisayarına bir izin eklemeniz gerekir.

Çapraz kökenli XMLHttpRequest

Uzak URL'yi uygulamaya getirin ve içeriğini blob:URL olarak sunun .


Bunların hiçbirini yapabileceğinizi sanmıyorum. unsafe-evalVe unsafe-inlineyanıt başlıklarını düzeltmek için , yalnızca komut dosyası sahibi kodu düzeltebilir veya genel etki alanındaysa düzeltebilirsiniz. Bütün bunlar muhtemelen bir defalık bir düzeltmedir.


Hileler

UnsafeWindow

http://wiki.greasespot.net/UnsafeWindow

İçerik Komut Dosyası Ekleme

http://wiki.greasespot.net/Content_Script_Injection


Ancak hacklerin dezavantajları var, çünkü kesinlikle en azından birincisinde güvenlik deliklerine neden olduklarını biliyorlardı.


0

Bu ayarları chrome://settings/content, adres çubuğuna yazarak doğrudan erişebileceğiniz içerik sekmesinde düzenleyebilirsiniz . Belirli içerik türlerinde belirli alanları beyaz listeye ekleyebilirsiniz.


9
İçerik ayarlarında tam olarak nerede yapıyorum ve nasıl? Hiçbir etki için siteme "çerez ve site veri istisnaları" eklemeyi denedim. Diğer ayarların hiçbiri alakalı görünmüyor.
Michael
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.