Sweetalert: Kompatibilitas Kebijakan Keamanan Konten

Dibuat pada 11 Okt 2018  ·  8Komentar  ·  Sumber: t4t5/sweetalert

Dalam proyek saya, saya telah memberikan tag meta berikut (seperti yang ditunjukkan pada tangkapan layar yang diikuti):

<meta http-equiv="Content-Security-Policy" content="default-src http:">

image

Ketika saya memuat halaman saya mendapatkan kesalahan berikut di konsol saya:

image

Adakah yang pernah menghadapi masalah ini sebelumnya?

Juga BTW nama file js saya adalah sweetalert.min.js tetapi konten file berisi js yang tidak diminifikasi!

Komentar yang paling membantu

Solusinya adalah menambahkan hash ke header Content-Security-Policy .

Sesuatu seperti

style-src 'self' 'sha256-47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=' 'sha256-wTr/bct+DGhJCU0mVZOm9Z1v99oBZrIu4VCMYQJWdfI=';

Tidak ideal tetapi lebih baik daripada unsafe-inline . Masalahnya adalah jika file berubah, hash tidak akan cocok lagi dan browser akan menolaknya.

Situasi yang ideal adalah mengekstrak css ke dalam filenya sendiri dan menyimpannya di CDN. Dengan begitu kita bisa membuat daftar putih file tersebut.

Semua 8 komentar

Anda perlu memperbarui nilai Content-Security-Policy untuk mengakomodasi direktif style-src yang harus berisi 'unsafe-inline' (hati-hati mengutip) untuk mengeksekusi gaya inline yang disuntikkan.

Jelas tidak ideal untuk memaksa pengembang menggunakan kebijakan unsafe-inline untuk CSS. Kita mungkin harus menemukan cara yang lebih baik untuk menangani ini.

Salah satu caranya adalah dengan tidak mengimpor file css di dalam kode Anda dan membuatnya tersedia sebagai file terpisah yang dapat diimpor dalam kode pengembang. sesuatu seperti
import 'sweetalert/sweetalert.css
Dengan cara ini, pengembang bertanggung jawab untuk memastikannya tidak melanggar CSP

Itu (hampir) tidak ada hubungannya dengan di mana file CSS berada (selama CSS berada di domain yang sama). Sweetalert _injects_ inline CSS , yang tidak akan diizinkan oleh CSP mana pun kecuali ada nilai nonce/hash. Itu membuatku kesakitan pagi ini; Saya mungkin harus melepasnya dari proyek saya, yang memalukan, karena saya sangat menyukainya.

Apakah ada pembaruan tentang ini? Saya mengalami masalah yang sama; hanya ingin tahu apa cara terbaik untuk menyiasatinya?

Solusinya adalah menambahkan hash ke header Content-Security-Policy .

Sesuatu seperti

style-src 'self' 'sha256-47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=' 'sha256-wTr/bct+DGhJCU0mVZOm9Z1v99oBZrIu4VCMYQJWdfI=';

Tidak ideal tetapi lebih baik daripada unsafe-inline . Masalahnya adalah jika file berubah, hash tidak akan cocok lagi dan browser akan menolaknya.

Situasi yang ideal adalah mengekstrak css ke dalam filenya sendiri dan menyimpannya di CDN. Dengan begitu kita bisa membuat daftar putih file tersebut.

Itu (hampir) tidak ada hubungannya dengan di mana file CSS berada (selama CSS berada di domain yang sama). Sweetalert _injects_ inline CSS , yang tidak akan diizinkan oleh CSP mana pun kecuali ada nilai nonce/hash. Itu membuatku kesakitan pagi ini; Saya mungkin harus melepasnya dari proyek saya, yang memalukan, karena saya sangat menyukainya.

sama disini.

Saya bisa mendapatkan dua hash gaya sebaris dari sweetalert.min.js di Chrome. Saat ditambahkan ke header CSP, Chrome tidak mengeluh lagi.
Tetapi Firefox dan Safari masih mengeluh, dan saya tidak dapat menemukan hash yang tepat. Browser ini tidak memberikan petunjuk apa pun.
Firefox: Content Security Policy: The page’s settings blocked the loading of a resource at inline (“style-src”)
Safari: Refused to apply a stylesheet because its hash, its nonce, or 'unsafe-inline' does not appear in the style-src directive of the Content Security Policy.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

voodoo6 picture voodoo6  ·  4Komentar

daftspunk picture daftspunk  ·  4Komentar

xgqfrms-GitHub picture xgqfrms-GitHub  ·  4Komentar

waldyrious picture waldyrious  ·  5Komentar

adiwithadidas picture adiwithadidas  ·  4Komentar