Jadual Kandungan
✅ 1. Elakkan skrip dan gaya sebaris
✅ 2. Gunakan tajuk CSP yang ketat (tanpa 'tidak selamat')
Betulkan 'unsafe-eval'
✅ 3. Mengendalikan kandungan dinamik dengan selamat
✅ 4. Gunakan nonces atau hash untuk skrip yang dibenarkan (jika diperlukan)
Contoh dengan nonce:
✅ 5. Sumber luaran dan CDN
✅ 6. Uji CSP anda
Ringkasan: Amalan terbaik
Rumah hujung hadapan web View.js Bagaimana Mengendalikan Dasar Keselamatan Kandungan (CSP) di Vue Spa?

Bagaimana Mengendalikan Dasar Keselamatan Kandungan (CSP) di Vue Spa?

Aug 03, 2025 am 08:56 AM

Elakkan skrip dan gaya sebaris dengan menggerakkan semua JavaScript ke fail luaran dan menggunakan pengendali acara Vue dan bukannya atribut onclick inline. 2. Gunakan header CSP yang ketat tanpa 'tidak selamat' atau 'tidak selamat' dengan mengadopsi komponen runtime sahaja dan komponen fail tunggal Vue untuk menghapuskan keperluan untuk kompilasi templat dinamik. 3. Mengendalikan kandungan dinamik dengan selamat dengan V-HTML hanya selepas membersihkan input pengguna menggunakan dompurify, memastikan pelaksanaan skrip blok CSP dalam HTML yang disuntik. 4. Jika skrip dalam talian diperlukan, gunakan nonces atau hash dan bukannya 'tidak selamat', walaupun ini paling baik dielakkan dalam spa statik kecuali menggunakan SSR. 5. Benarkan sumber luaran seperti CDNs dengan jelas menyatakan domain dalam arahan CSP seperti Script-SRC, IMG-SRC, FONT-SRC, dan Connect-SRC, sambil mengelakkan 'tidak selamat' untuk gaya dengan menggunakan CSS luaran atau scoped. 6. Uji CSP anda menggunakan alat penyemak imbas, penilai CSP Google, dan mod laporan sahaja untuk mengesan pelanggaran tanpa penguatkuasaan, memastikan semua dasar berfungsi seperti yang dimaksudkan sebelum penggunaan penuh. Dengan mengikuti langkah -langkah ini, Spa Vue boleh beroperasi di bawah dasar keselamatan kandungan yang ketat yang berkesan mengurangkan XSS dan risiko suntikan kod tanpa bergantung pada arahan yang tidak selamat, mengakibatkan aplikasi yang selamat dan dikekalkan.

Bagaimana Mengendalikan Dasar Keselamatan Kandungan (CSP) di Vue Spa?

Mengendalikan Dasar Keselamatan Kandungan (CSP) dalam aplikasi Vue Single Page (SPA) adalah penting untuk mendapatkan aplikasi anda terhadap XSS (skrip lintas tapak) dan serangan suntikan kod lain. Walau bagaimanapun, Vue Spa-terutamanya yang menggunakan ciri-ciri dinamik seperti skrip sebaris, eval() , atau v-html -dengan mudah boleh bertentangan dengan peraturan CSP yang ketat. Berikut adalah cara mengendalikan CSP dengan betul di Vue Spa.

Bagaimana Mengendalikan Dasar Keselamatan Kandungan (CSP) di Vue Spa?

✅ 1. Elakkan skrip dan gaya sebaris

Blok CSP Inline <script></script> dan <style></style> tag secara lalai. Vue sendiri tidak menjana skrip sebaris apabila dibina dengan betul, tetapi corak biasa boleh memecahkan CSP:

  • Elakkan pengendali acara sebaris ( @click , v-on ) dalam templat-ini umumnya baik kerana Vue menyusunnya ke pendengar acara, bukan inline onclick="" .
  • Jangan gunakan tag <script></script> inline dalam index.html anda. Gerakkan semua logik ke fail luaran.

❌ Bad (melanggar CSP lalai):

Bagaimana Mengendalikan Dasar Keselamatan Kandungan (CSP) di Vue Spa?
 <!-index.html->
<script>
  console.log (&#39;init&#39;);
</script>

✅ Bagus:

 <!-index.html->
<script src = "js/app.js"> </script>

Gunakan Webpack/Vite untuk membungkus aplikasi VUE anda dan luaran semua JavaScript.

Bagaimana Mengendalikan Dasar Keselamatan Kandungan (CSP) di Vue Spa?

✅ 2. Gunakan tajuk CSP yang ketat (tanpa 'tidak selamat')

Apabila menyebarkan, tetapkan CSP yang kuat melalui tajuk HTTP (pilihan) atau <meta http-equiv="Content-Security-Policy"> .

Contoh Header CSP untuk Spa Vue (dihoskan pada asal yang sama):

 Kandungan-keselamatan-dasar: 
  lalai-src &#39;diri&#39;;
  script-src &#39;self&#39; &#39;unsafe-eval&#39; &#39;unsafe-inline&#39;; ← Elakkan ini!

Tunggu-anda melihat &#39;unsafe-eval&#39; dan &#39;unsafe-inline&#39; ? Itu biasa semasa pembangunan tetapi tidak selamat .

Betulkan &#39;unsafe-eval&#39;

Penyusun runtime Vue (kompilasi templat dalam pelayar) menggunakan new Function() , yang mencetuskan &#39;unsafe-eval&#39; . Untuk membuang ini:

➡️ Gunakan Runtime-Only Vue

Dalam projek Vue anda (Vue 3 dengan Vite atau Webpack), pastikan anda menggunakan versi runtime sahaja :

 // vite.config.js atau config webpack
Selesaikan: {
  alias: {
    &#39;vue&#39;: &#39;vue/dist/vue.runtime.esm-bundler.js&#39;
  }
}

Dan tulis komponen anda menggunakan fail .vue dengan <template> , bukan templat runtime seperti:

 app.component (&#39;my-comp&#39;, {template: &#39;<div> hi </div>&#39;}) // memerlukan pengkompil → keperluan tidak selamat-eval

✅ Sebaliknya, gunakan SFCS (komponen fail tunggal):

 <!-myComponent.vue->
<pemat>
  <div> hi </div>
</template>
<script>
Eksport Lalai {}
</script>

Sekarang anda boleh mengeluarkan &#39;unsafe-eval&#39; dari script-src .


✅ 3. Mengendalikan kandungan dinamik dengan selamat

Arahan Vue v-html boleh berbahaya dan mungkin memerlukan &#39;unsafe-inline&#39; jika disalahgunakan.

❌ Elakkan:

 <div v-html = "usercontent"> </div>

Ini membuka risiko XSS dan tidak membantu CSP-CSP tidak dapat membezakan selamat vs v-html yang tidak selamat.

✅ Pendekatan yang lebih selamat:

  • Membersihkan kandungan pengguna dengan perpustakaan seperti dompurify :
 import dompurify dari &#39;dompurify&#39;;

const cleanHtml = dompurify.sanitize (userHtml);
 <div v-html = "cleanhtml"> </div>

Namun, v-html tidak memerlukan CSP santai jika anda tidak menyuntik skrip sebaris. CSP akan menyekat pelaksanaan skrip dalam kandungan v-html -yang baik.

SO: v-html boleh diterima jika anda membersihkan input dan pelaksanaan skrip blok CSP anda dari DOM .


✅ 4. Gunakan nonces atau hash untuk skrip yang dibenarkan (jika diperlukan)

Sekiranya anda mesti memasukkan skrip inline yang selamat (contohnya, kod awal init), gunakan nonces atau hash dan bukannya &#39;unsafe-inline&#39; .

Contoh dengan nonce:

Menjana permintaan yang unik setiap permintaan di pelayan:

 Kandungan-keselamatan-dasar: skrip-src &#39;diri&#39; &#39;nonce-abc123&#39;

Kemudian:

 <script nonce = "ABC123">
  // skrip inline kecil
</script>

⚠️ Ini memerlukan penyampaian pelayan (SSR) atau generasi HTML dinamik. Dalam spa Vue statik, ini sukar dilaksanakan melainkan anda menggunakan SSR (NUXT, dll.).

Sebagai alternatif, elakkan skrip sebaris sepenuhnya - lebih baik untuk CSP dan penyelenggaraan.


✅ 5. Sumber luaran dan CDN

Jika aplikasi VUE anda memuatkan aset luaran (fon, analisis, API), kemas kini CSP dengan sewajarnya.

Contoh:

 Kandungan-keselamatan-dasar:
  lalai-src &#39;diri&#39;;
  script-src &#39;self&#39; https://www.m.sbmmt.com;
  img-src &#39;self&#39; https: //*.m.sbmmt.com;
  font-src &#39;self&#39; https://fonts.gstatic.com;
  connect-src &#39;self&#39; https://api.yourservice.com;
  gaya-src &#39;diri&#39; &#39;tidak selamat-dalam talian&#39;; ← Kurangkan penggunaan

➡️ Elakkan &#39;unsafe-inline&#39; untuk style-src oleh:

  • Menggerakkan semua CSS ke fail luaran (VUE mengendalikan ini melalui gaya scoped atau pengekstrakan CSS).
  • Menggunakan style-src &#39;self&#39; jika semua gaya dibundel.

✅ 6. Uji CSP anda

Gunakan alat penyemak imbas (tab keselamatan) untuk memeriksa pelanggaran CSP.

Gunakan juga:

  • Penilai CSP Google
  • Mod Laporan sahaja:
     Kandungan-keselamatan-dasar-laporan sahaja: lalai-src &#39;diri&#39;; Laporan-URI /CSP-Report-Endpoint

    Ini melanggar pelanggaran tanpa menyekat, hebat untuk ujian.


    Ringkasan: Amalan terbaik

    • ✅ Gunakan Vue Runtime-Only Build untuk mengelakkan 'unsafe-eval'
    • ✅ Elakkan skrip/gaya sebaris dalam index.html
    • ✅ Sanitize kandungan v-html dengan dompurify
    • ✅ Gunakan Bundle Luaran (Vite/Webpack) untuk semua JS/CSS
    • ✅ Tetapkan CSP melalui header HTTP: script-src 'self' , tidak 'unsafe-inline' atau 'unsafe-eval'
    • ✅ Benarkan hanya domain luaran yang diperlukan
    • ✅ Ujian CSP dengan alat laporan dan penyemak imbas

    Pada asasnya, dengan persediaan Vue yang betul dan kebersihan penempatan, anda boleh menjalankan Spa Vue di bawah CSP yang ketat - tidak diperlukan bendera yang tidak selamat. Ia hanya mengambil perhatian kepada bagaimana dan di mana kod dimuatkan.

    Atas ialah kandungan terperinci Bagaimana Mengendalikan Dasar Keselamatan Kandungan (CSP) di Vue Spa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial PHP
1535
276
Pintu masuk percuma ke laman web sumber produk Vue selesai. Produk siap Vue lengkap dilihat secara kekal dalam talian Pintu masuk percuma ke laman web sumber produk Vue selesai. Produk siap Vue lengkap dilihat secara kekal dalam talian Jul 23, 2025 pm 12:39 PM

Artikel ini telah memilih satu siri laman web sumber produk siap peringkat tinggi untuk pemaju dan pelajar Vue. Melalui platform ini, anda boleh menyemak imbas, belajar, dan juga menggunakan semula projek lengkap Vue berkualiti tinggi secara dalam talian secara percuma, dengan itu dengan cepat meningkatkan kemahiran pembangunan dan keupayaan amalan projek anda.

Apakah cangkuk kitaran hayat Vue? Namakan beberapa dan terangkan kes penggunaannya. Apakah cangkuk kitaran hayat Vue? Namakan beberapa dan terangkan kes penggunaannya. Jul 24, 2025 am 12:08 AM

Cangkuk kitaran hidup komponen VUE digunakan untuk melaksanakan kod pada peringkat tertentu. 1. Dibuat: Dipanggil dengan serta -merta selepas komponen dibuat, sesuai untuk memulakan data; 2.Mounted: Dipanggil selepas komponen dipasang ke DOM, sesuai untuk mengendalikan DOM atau memuat sumber luaran; 3.Updated: Dipanggil apabila kemas kini data menyebabkan komponen disampaikan semula, sesuai untuk bertindak balas terhadap perubahan data; 4.BeforeUnmount: Dipanggil sebelum komponen dipasang, sesuai untuk pembersihan acara atau pemasa acara untuk mengelakkan kebocoran memori. Cangkuk ini membantu pemaju dengan tepat mengawal tingkah laku komponen dan mengoptimumkan prestasi.

Contoh komponen penomboran di Vue Contoh komponen penomboran di Vue Jul 26, 2025 am 08:49 AM

Untuk melaksanakan komponen Paging Vue yang boleh diguna semula, perkara utama berikut perlu dijelaskan: 1. Tentukan alat peraga termasuk jumlah baris, bilangan baris setiap halaman dan nombor halaman semasa; 2. Kirakan jumlah halaman; 3. Secara dinamik menjana array nombor halaman yang dipaparkan; 4. Proses Nombor Halaman Klik Acara dan lulus ke komponen induk; 5. Tambah gaya dan butiran interaksi. Menerima data melalui prop dan tetapkan nilai lalai, gunakan atribut yang dikira untuk mengira jumlah halaman, gunakan kaedah untuk menghasilkan array nombor halaman yang dipaparkan sekarang, membuat butang dalam templat dan mengikat peristiwa klik untuk mencetuskan kemas kini: Acara halaman semasa, dengar pada komponen induk untuk mengemas kini nombor halaman semasa.

Vue Free siap PRODUCT SUMBER PRODUCE VUE Navigasi Laman Web Produk Siap Percuma Vue Free siap PRODUCT SUMBER PRODUCE VUE Navigasi Laman Web Produk Siap Percuma Jul 23, 2025 pm 12:42 PM

Bagi pemaju Vue, projek atau templat siap berkualiti tinggi adalah alat yang berkuasa untuk memulakan projek baru dengan cepat dan mempelajari amalan terbaik. Artikel ini telah memilih pelbagai portal sumber produk siap Vue dan navigasi laman web untuk membantu anda mencari penyelesaian front-end yang anda perlukan dengan cekap, sama ada sistem pengurusan belakang, perpustakaan komponen UI, atau templat untuk senario perniagaan tertentu, anda boleh mendapatkannya dengan mudah.

Kaedah yang dikira vs kaedah di Vue Kaedah yang dikira vs kaedah di Vue Aug 05, 2025 am 05:21 AM

Dikira mempunyai cache, dan pelbagai akses tidak dikira semula apabila pergantungan tetap tidak berubah, sementara kaedah dilaksanakan setiap kali mereka dipanggil; 2. Komputed sesuai untuk pengiraan berdasarkan data responsif. Kaedah sesuai untuk senario di mana parameter diperlukan atau panggilan kerap tetapi hasilnya tidak bergantung kepada data responsif; 3. Kompted menyokong getters dan setters, yang dapat merealisasikan penyegerakan data dua hala, tetapi kaedah tidak disokong; 4. Ringkasan: Gunakan yang dikira terlebih dahulu untuk meningkatkan prestasi, dan menggunakan kaedah semasa lulus parameter, melakukan operasi atau mengelakkan cache, mengikuti prinsip "jika anda boleh menggunakan dikira, anda tidak menggunakan kaedah".

Bagaimana cara menggunakan slot dan slot bernama dalam komponen Vue? Bagaimana cara menggunakan slot dan slot bernama dalam komponen Vue? Jul 21, 2025 am 03:24 AM

Menggunakan slot dan slot yang dinamakan dalam VUE dapat meningkatkan fleksibiliti komponen dan kebolehgunaan semula. 1. Slot membolehkan komponen induk untuk memasukkan kandungan ke dalam komponen kanak -kanak melalui tag, seperti memasukkan teks perenggan ke dalam komponen kad. 2. 3. Kandungan lalai boleh ditetapkan dalam slot sebagai alternatif apabila komponen induk tidak disediakan, seperti butang tutup lalai; 4. Simbol # adalah sintaks singkatan V-Slot:; 5. Adalah disyorkan untuk menggunakan slot yang munasabah untuk mengelakkan pergantungan yang berlebihan, dan sesetengah kandungan boleh dianggap dilaksanakan melalui props atau komponen skop.

Bagaimana Melaksanakan Pengantarabangsaan (I18N) dalam aplikasi VUE? Bagaimana Melaksanakan Pengantarabangsaan (I18N) dalam aplikasi VUE? Jul 26, 2025 am 08:37 AM

Pasang VUEI18N: VUE3 Menggunakan NPMinstallVue-I18n@Seterusnya, VUE2 menggunakan NPMinstallVue-I18N; 2. Buat fail bahasa seperti en.json dan es.json dalam direktori tempatan, menyokong struktur bersarang; 3. Buat contoh melalui createi18n dalam vue3 dan pasangkannya di main.js, vue2 menggunakan vue.use (vuei18n) dan instantiate vuei18n; 4. Gunakan {{$ t ('key')}} Interpolation dalam templat, gunakan fungsi T UsEI18N dalam API Vue3composition, dan API Vue2Options

Cara Melaksanakan Switcher Tema Mod Gelap di Vue Cara Melaksanakan Switcher Tema Mod Gelap di Vue Aug 02, 2025 pm 12:15 PM

Buat komponen pensuisan tema, gunakan kotak semak untuk mengikat keadaan ISDarkMode dan panggil fungsi toggletheme; 2. Semak pilihan localStorage dan sistem di Onmounted untuk memulakan tema; 3. Tentukan fungsi ApplyTheMe untuk memohon kelas mod gelap ke elemen HTML untuk menukar gaya; 4. Gunakan sifat tersuai CSS untuk menentukan pembolehubah cerah dan gelap, dan ganti rugi gaya lalai melalui kelas mod gelap; 5. Memperkenalkan komponen Temeswitcher ke dalam templat aplikasi utama untuk memaparkan butang togol; 6. Secara pilihan mendengar perubahan-warna-skema perubahan untuk menyegerakkan tema sistem. Penyelesaian ini menggunakan Vue

See all articles