Kebijakan Keamanan Konten: Pengaturan halaman memblokir pemuatan sumber daya


104

Saya menggunakan CAPTCHA saat memuat halaman, tetapi ini memblokir karena beberapa alasan keamanan.

Saya menghadapi masalah ini:

    Kebijakan Keamanan Konten: Pengaturan halaman memblokir pemuatan
    sumber daya di
    http://www.google.com/recaptcha/api.js?onload=myCallBack&render=explicit
    ("script-src http://test.com:8080 'unsafe-inline' 'unsafe-eval'").

Saya telah menggunakan JavaScript dan meta tag berikut:

<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval'">
<script src="http://www.google.com/recaptcha/api.js?onload=myCallBack&render=explicit" async defer></script>

Jika saya adalah Anda, saya akan mencoba melakukannya dengan kode sisi server, dan bukan javascript. JS tidak terlalu bagus dengan CORS dan sejenisnya. Google memang memiliki opsi untuk itu ..
Gogol

Saya telah menambahkan javascripttag ke pertanyaan ini, karena pertanyaan tersebut tidak ada hubungannya dengan jQuery. Ini memengaruhi JavaScript apa pun. Sebenarnya, pertanyaan itu akan lebih berguna jika Anda menghapus jQuerytag sama sekali, tetapi bukan tempat saya untuk melakukannya.
Manngo

2
Jawaban yang sekarang dihapus sudah benar. Salah satu alasan untuk "Kebijakan Keamanan Konten: Pengaturan halaman memblokir pemuatan sumber daya" adalah jika JavaScript tidak diaktifkan atau diblokir (misalnya oleh NoScript ) di browser. Dalam hal ini, bagian dari keluaran kesalahan mungkin "Tidak dapat memproses perintah yang tidak diketahui 'noscript-marker'" .
Peter Mortensen

Saya tidak dapat mengomentari saran lain untuk digunakan about: config, jadi saya rasa saya akan menambahkannya di sini. Seseorang merekomendasikan masuk tentang: config dan pengaturan security.csp.enable to false. Semua orang mengatakan ini adalah ide yang buruk. Saya hanya ingin mengatakan bahwa ini adalah solusi yang saya putuskan untuk digunakan juga. Sangat banyak situs yang berhenti bekerja sama sekali untuk saya di Firefox, dengan banyak sekali kesalahan ini di mana-mana. Chrome masih memuatnya. Tanpa mengetahui lebih banyak tentang mengapa demikian, pengaturan security.csp.enable menjadi false memungkinkan situs tersebut memuat lagi menggunakan Firefox, dan saya lebih memilih Firefox daripada Chrome. Jika
EliT

Jawaban:


85

Anda mengatakan Anda hanya dapat memuat skrip dari situs Anda sendiri (sendiri). Anda kemudian mencoba memuat skrip dari situs lain ( www.google.com ) dan, karena Anda telah membatasi ini, Anda tidak dapat melakukannya. Itulah inti dari Kebijakan Keamanan Konten (CSP).

Anda dapat mengubah baris pertama Anda menjadi:

<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval' http://www.google.com">

Atau, sebagai alternatif, mungkin ada baiknya menghapus baris itu sepenuhnya sampai Anda mengetahui lebih lanjut tentang CSP. CSP Anda saat ini cukup lemah (memungkinkan unsafe-inline, unsafe-evaldan default-srcdari *), jadi mungkin tidak menambahkan terlalu banyak nilai, jujur ​​saja.


5
Ini adalah solusi yang tidak aman - Pemeriksa CSP Google memberi baris ini beberapa kegagalan Parah. (Sayangnya, menerapkan CSP yang baik bukanlah hal yang sepele dan perlu disesuaikan per situs.)
Freewalker

8
Saya mempermasalahkan komentar ini. Masalah dengan CSP adalah karena CSP asli. Semua jawaban ini lakukan adalah mengambil itu dan menambahkan domain www.google.com ke ini sebagai jawaban atas pertanyaan itu. Dapatkah saya menyarankan untuk memperketat CSP lebih jauh pada saat yang bersamaan? Mungkin, tapi menurut saya itu di luar jangkauan pertanyaan. Terutama karena OP tidak mengenal CSP.
Barry Pollard

3
Sekarang apakah CSP "tidak aman"? Itu bisa diperdebatkan. Mengizinkan unsafe-inline dan unsafe-eval dan sumber default * mengalahkan sebagian besar tujuan CSP (oleh karena itu mengapa saya juga menyarankan untuk menghapusnya), tetapi harus diingat bahwa CSP tidak pernah dapat melonggarkan kontrol browser sehingga bahkan kebijakan yang hilang ini menambahkan beberapa kontrol atas laman yang tidak memiliki CSP - sebagaimana dibuktikan dengan fakta bahwa laman tersebut memblokir skrip Google! Jadi, "tidak aman" mungkin bukan istilah yang bagus. "Terlalu longgar untuk menjadi berharga" mungkin merupakan cara yang lebih baik untuk mengungkapkannya. Jadi ya, CSP ini menyisakan banyak hal yang diinginkan, tetapi menambahkan Google ke dalamnya bukanlah "solusi yang tidak aman".
Barry Pollard

3
Hal yang wajar bahwa setiap CSP (selain "semuanya baik-baik saja) umumnya akan lebih baik daripada tidak sama sekali.
Freewalker

Ada sedikit masalah dengan itu, saya mendapatkan kesalahan itu dari chrome://global/content/elements/panel.js(Firefox) yang menonaktifkan debug di semua halaman
AaA

14

Dengan proyek ASP.NET Core Angular saya yang berjalan di Visual Studio 2019, terkadang saya mendapatkan pesan kesalahan ini di konsol Firefox:

Kebijakan Keamanan Konten: Pengaturan halaman memblokir pemuatan sumber daya di inline ("default-src").

Di Chrome, pesan kesalahannya adalah:

Gagal memuat sumber daya: server menanggapi dengan status 404 ()

Dalam kasus saya, ini tidak ada hubungannya dengan Kebijakan Keamanan Konten saya, melainkan hanya hasil dari kesalahan TypeScript di pihak saya.

Periksa jendela keluaran IDE Anda untuk kesalahan TypeScript, seperti:

> ERROR in src/app/shared/models/person.model.ts(8,20): error TS2304: Cannot find name 'bool'.
>
> i 「wdm」: Failed to compile.

Catatan: Karena pertanyaan ini adalah hasil pertama di Google untuk pesan kesalahan ini.


11

Saya memiliki jenis kesalahan yang serupa. Pertama, saya mencoba menambahkan tag meta ke dalam kode, tetapi tidak berhasil.

Saya menemukan bahwa di server web nginx Anda mungkin memiliki pengaturan keamanan yang dapat memblokir kode eksternal untuk dijalankan:

# Security directives
server_tokens off;
add_header X-Frame-Options SAMEORIGIN;
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'  https://ajax.googleapis.com  https://ssl.google-analytics.com https://assets.zendesk.com https://connect.facebook.net; img-src 'self' https://ssl.google-analytics.com https://s-static.ak.facebook.com https://assets.zendesk.com; style-src 'self' 'unsafe-inline' https://assets.zendesk.com; font-src 'self' https://fonts.gstatic.com  https://themes.googleusercontent.com; frame-src https://player.vimeo.com https://assets.zendesk.com https://www.facebook.com https://s-static.ak.facebook.com https://tautt.zendesk.com; object-src 'none'";

Periksa Kebijakan-Keamanan-Konten. Anda mungkin perlu menambahkan referensi sumber.


4
Perhatikan bahwa ini tidak aman - Content-SecurityPolicy ini mendapatkan kegagalan dengan Keparahan Tinggi dari Penilai CSP Google .
Freewalker

1

Saya berhasil mengizinkan semua situs yang saya perlukan dengan tajuk ini:

header("Content-Security-Policy: default-src *; style-src 'self' 'unsafe-inline'; font-src 'self' data:; script-src 'self' 'unsafe-inline' 'unsafe-eval' stackexchange.com");                    

0

Saya menyiasatinya dengan meningkatkan versi Angular yang saya gunakan (dari v8 -> v9) dan versi TypeScript (dari 3.5.3 -> terbaru).


1
Apa penjelasannya?
Peter Mortensen

-7

Anda dapat menonaktifkannya di browser Anda.

Firefox

Ketik about:configbilah alamat Firefox dan temukan security.csp.enabledan setel ke false.

Chrome

Anda dapat menginstal ekstensi yang dipanggil Disable Content-Security-Policyuntuk menonaktifkan CSP.


82
Jangan PERNAH melakukan ini, selain dari debugging sementara. Ini adalah fitur keamanan penting dari browser Anda.
hackel

4
Ini hanya akan memperbaikinya secara lokal, dan selain itu, browser Anda jauh lebih rentan.
Neil Chowdhury

3
Apakah ini "saran" untuk pengujian / debugging? Jika demikian, itu harus disebutkan sebagai jawaban untuk menghindari penyebaran kerentanan berbahaya di komunitas orang yang tidak sadar. Omong-omong, seperti yang dikatakan @NeilChowdhury, ini akan memperbaikinya di sistem Anda, bagaimana dengan pengunjung situs web yang sebenarnya?
Fr0zenFyr

13
solusi sementara tetapi membantu untuk debugging (plus satu)
NarendraR

5
@hackel AKU AKAN melakukan ini. AKU AKAN.
ア レ ッ ク ス
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.