Rumah > hujung hadapan web > tutorial js > 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
Lepaskan: 2024-11-08 22:33:02
asal
226 orang telah melayarinya

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/"
Salin selepas log masuk

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'"
Salin selepas log masuk

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/"
Salin selepas log masuk

5. Pengendalian Protokol:

Benarkan protokol bukan lalai secara eksplisit:

content="default-src 'self'; connect-src ws:; style-src 'self'"
Salin selepas log masuk

6. file:// Protokol:

Benarkan fail:// protokol menggunakan parameter sistem fail:

content="default-src filesystem"
Salin selepas log masuk

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'"
Salin selepas log masuk

8. eval() Invocation:

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

content="script-src 'unsafe-eval'"
Salin selepas log masuk

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"
Salin selepas log masuk

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!

sumber:php.cn
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan