1.Server set header: Content-Security-Policy: default-src https:
Ini tidak terlihat seperti masalah dengan pegjs.
Apakah Anda memuat skrip Anda dari sumber yang tidak aman (http?)
Saya dapat mereproduksi ini pada protokol http dan https. Ini semua tentang kebijakan keamanan. Jika kode menggunakan fungsi eval, maka tidak akan dieksekusi, browser akan memblokir eksekusinya
Saya punya solusi untuk itu, tetapi itu tidak aman.
Rincian lebih lanjut tentang kebijakan keamanan:
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy
Tautan Anda untuk header http. Anda mengendalikan header apa pun yang Anda kirim di server Anda.
Ya, header ini terkait dengan keamanan, tetapi aplikasi mana di tahun 2020 yang tidak akan memikirkan keamanan. Ini adalah praktik yang cukup umum untuk menggunakan pendekatan ini dalam aplikasi web modern.
Saya sedikit mencari di Google dan memperhatikan bahwa perpustakaan populer telah membuat pembaruan ini.
Jadi, saya tidak berpikir bahwa banyak aplikasi akan mengabaikan keamanan di masa depan, dan pilih alat yang sesuai yang akan konsisten dengan ini.
Pegjs adalah generator parser, ini adalah jenis lib JS yang terpisah,
Bagaimana JS di dalam tata bahasa bekerja tanpa eval
ing itu?
Saya tidak berpikir itu adalah solusi yang baik untuk generator parser. Performa cukup penting di sini.
Saya kehilangan konteks dalam masalah ini. Adakah yang bisa menunjuk pada bagian kode yang relevan?
Saya pikir ada baiknya menambahkan alternatif non- eval
untuk kompatibilitas Kebijakan Keamanan Konten; akan melihat ini di beberapa titik sebelum 0,12 dengan menambahkan bundel lain (mungkin bernama dist/peg.csp.js
) melalui file entri baru untuk dikonsumsi oleh Webpack saja
Mungkin tidak membuatnya hanya webpack. Masalah ini tidak spesifik untuk webpack, dan webpack dengan cepat menurun, mendukung rollup dan parsel
Sejujurnya, tidak ada alasan khusus untuk meninggalkan eval
di tempatnya jika ada alternatif yang disediakan. Ini tidak seperti itu entah bagaimana lebih cepat, seperti yang disarankan di atas. Justru sebaliknya
Ini tidak boleh ditandai not-a-bug
. Faktanya, ini adalah bug yang parah.
Komentar yang paling membantu
Saya pikir ada baiknya menambahkan alternatif non-
eval
untuk kompatibilitas Kebijakan Keamanan Konten; akan melihat ini di beberapa titik sebelum 0,12 dengan menambahkan bundel lain (mungkin bernamadist/peg.csp.js
) melalui file entri baru untuk dikonsumsi oleh Webpack saja