Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimanakah Dasar Keselamatan Kandungan (CSP) melindungi daripada serangan skrip rentas tapak (XSS)?

Bagaimanakah Dasar Keselamatan Kandungan (CSP) melindungi daripada serangan skrip rentas tapak (XSS)?

Linda Hamilton
Linda Hamiltonasal
2024-11-08 22:33:02156semak imbas

How does Content Security Policy (CSP) protect against cross-site scripting attacks (XSS)?

Cara Dasar Keselamatan Kandungan (CSP) Berfungsi

Sebagai tindak balas kepada banyak ralat berkaitan CSP yang anda hadapi, artikel ini bertujuan untuk menjelaskan cara kerja Dasar Keselamatan Kandungan dan menyediakan panduan praktikal untuk menggunakannya dengan berkesan.

Apakah itu CSP?

Dasar Keselamatan Kandungan (CSP) berfungsi sebagai pelayar- ciri keselamatan sisi yang direka untuk mengurangkan risiko serangan skrip rentas tapak (XSS). Dasar ini membolehkan anda menentukan sumber yang dibenarkan untuk memuatkan sumber seperti skrip, helaian gaya dan imej, dengan itu menghalang penyemak imbas daripada mendapatkan semula data daripada lokasi yang tidak dibenarkan.

Menggunakan Pengepala HTTP Kandungan-Keselamatan-Dasar

Untuk melaksanakan CSP di tapak web anda, anda boleh memanfaatkan pengepala HTTP Kandungan-Keselamatan-Dasar, yang mengandungi teg meta yang mengkonfigurasi parameter dasar. Tag meta ini termasuk sifat kandungan, yang mentakrifkan arahan dasar dan peraturan kebenaran sumber.

Menjawab Pertanyaan Anda

Mari kita teliti soalan yang anda bangkitkan:

1. Berbilang Sumber:

Untuk membenarkan sumber daripada berbilang sumber, cuma senaraikannya sebagai nilai yang diasingkan ruang selepas arahan:

content="default-src 'self' https://example.com/js/"

2. Arahan Pelbagai:

Arahan biasa termasuk:

  • default-src: Dasar lalai untuk memuatkan pelbagai sumber
  • script-src: Sumber sah untuk fail JavaScript
  • style-src: Sumber yang sah untuk fail CSS
  • img-src: Sumber yang sah untuk imej

3. Arahan Berbilang:

Gabungkan arahan dalam satu meta-tag dengan menggunakan koma bertitik sebagai pemisah:

content="default-src 'self' https://example.com/js/; style-src 'self'"

4. Pengendalian Port:

Membenarkan port secara eksplisit selain daripada lalai dengan menambahkan nombor port atau asterisk:

content="default-src 'self' https://ajax.googleapis.com http://example.com:123/free/stuff/"

5. Pengendalian Protokol:

Benarkan protokol bukan lalai secara eksplisit:

content="default-src 'self'; connect-src ws:; style-src 'self'"

6. file:// Protokol:

Benarkan fail:// protokol menggunakan parameter sistem fail:

content="default-src filesystem"

7. Gaya Sebaris dan Skrip:

Untuk mendayakan gaya sebaris, skrip dan teg, gunakan parameter 'sebaris tidak selamat':

content="script-src 'unsafe-inline'; style-src 'unsafe-inline'"

8. eval() Invocation:

Benarkan eval() dengan menggunakan parameter 'unsafe-eval':

content="script-src 'unsafe-eval'"

9. Tafsiran 'diri':

'diri' menandakan sumber yang berkongsi protokol, hos dan port yang sama seperti fail di mana dasar kandungan ditakrifkan:

content="default-src https://example.com"

Sila ambil perhatian bahawa 'diri' tidak membenarkan protokol tidak selamat seperti http atau fail setempat.

Petua Tambahan:

  • Elakkan menggunakan content="default-src *" kerana ia membenarkan inlining dan evals, mewujudkan kelemahan keselamatan.
  • Adalah dinasihatkan untuk menentukan sumber selamat (https) dan tidak selamat (http) untuk ke belakang keserasian.
  • Gunakan Content-Security-Policy-Report-Only untuk menguji pelaksanaan CSP tanpa menguatkuasakannya pada mulanya.
  • Pantau log ralat penyemak imbas untuk mengesan pelanggaran dasar.

Atas ialah kandungan terperinci Bagaimanakah Dasar Keselamatan Kandungan (CSP) melindungi daripada serangan skrip rentas tapak (XSS)?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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