Cross-Site-Scripting (XSS) adalah ancaman nan dilakukan oleh hacker pada suatu website. Serangan XSS dapat dicegah dengan penerapan Content Security Policy. Ada nan belum apapun tentang Content Security Policy? Kalem, kali ini bakal dibahas mengenai CSP, makanya langsung simak saja yuk Definisi Content Security Policy, Alasan Mengapa CSP Penting, dan Contoh Penerapannya
Definisi Content Security Policy
Content Security Policy (CSP) merupakan lapisan perlindungan tambahan nan dirancang untuk mengamankan website dari beragam serangan. CSP dapat menangkal serangan seperti Cross Site Scripting (XSS), nan mana pelaku mencoba menyisipkan kode rawan ke dalam website.
Content Security Policy berfaedah dengan memberitahukan browser tentang aturan-aturan nan mengatur sumber konten nan boleh dimuat oleh website.
Sebagai contoh, kalian dapat mengatur Content Security Policy melalui server web, seperti Apache namalain Nginx, menambahkannya secara langsung dalam kode HTML, namalain melalui bahasa pemrograman backend, seperti PHP.
Dengan mengaktifkan Content Security Policy, kalian dapat membatasi sumber-sumber nan diizinkan untuk memuat skrip, gambar, gaya, namalain jenis konten lainnya.
Berikut ini gambar nan memberikan contoh penerapan Content Security Policy:

Bayangkan seorang pengguna mengunjungi website http://123.com. Situs ini memuat dua file utama: ‘file.js’ nan merupakan file JavaScript, dan ‘file.css’ nan merupakan file CSS.
Seorang peretas mencoba menyusupkan skrip ‘xss.js’. rawan dari sebuah situs. Jika server web 123.com sudah mengaktifkan Content Security Policy dengan kebijakan nan hanya memperbolehkan konten dari domain example.com (default-src http://www.123.com), maka hanya file ‘file.js’ dan ‘file.css’ nan bakal dimuat oleh browser lantaran keduanya berasal dari domain nan sah.
Skrip rawan ‘xss.js’ dari domain lain bakal diblokir oleh browser lantaran tidak sesuai dengan kebijakan CSP nan telah ditetapkan.
Sehingga, Content Security Policy membantu memastikan bahwa hanya konten nan tepercaya dan berasal dari sumber nan sah nan dapat dimuat di website dan mengurangi akibat beragam jenis serangan nan bisa membahayakan pengguna serta integritas website itu sendiri.
Alasan Pentingnya Content Security Policy
Berikut ini beberapa argumen kudu peduli dengan penggunaan content security policy:
Mengurangi Skrip Lintas Situs (Cross-Site Scripting)
Salah satu argumen utama kenapa Kebijakan Keamanan Konten (CSP) sangat krusial adalah lantaran kemampuannya untuk mengurangi akibat serangan Cross-Site Scripting (XSS).
Serangan XSS adalah jenis serangan nan mana penyerang menyuntikkan skrip rawan ke dalam laman web nan dilihat oleh pengguna. Ketika pengguna mengakses laman nan terinfeksi, browser mereka bakal menjalankan skrip rawan tersebut lantaran mempercayai konten nan diterima dari server.
Content Security Policy bekerja dengan memungkinkan pengurus server menentukan daftar domain internet nan dianggap sah untuk menjalankan skrip di situs mereka.
Dengan kata lain, hanya skrip nan berasal dari domain nan telah terdaftar dalam daftar putih nan bakal dijalankan oleh browser. Skrip dari sumber lain, termasuk skrip nan ditulis langsung dalam HTML namalain melalui atribut penanganan kejadian (event handlers), bakal diabaikan.
Artinya, jika seorang penyerang mencoba menyuntikkan skrip rawan dari sumber nan tidak dikenal namalain tidak tepercaya, skrip tersebut tidak bakal dijalankan oleh browser pengguna.
Makanya, Content Security Policy secara signifikan mengurangi kemungkinan serangan XSS sukses lantaran skrip rawan tidak bakal pernah dijalankan.
Mengurangi Penyadapan Paket (Packet Sniffing) dan Menerapkan HTTPS
Kebijakan Keamanan Konten (CSP) juga sangat krusial lantaran membantu mengurangi akibat penyadapan paket (packet sniffing) dan mendorong penerapan HTTPS.
Penyadapan paket adalah teknik nan digunakan oleh penyerang untuk menangkap info nan dikirim antara browser dan server. Jika info tersebut tidak dienkripsi, penyerang dapat memandang info sensitif seperti kata sandi, nomor kartu kredit, dan info pribadi lainnya. Salah satu langkah Content Security Policy melindungi info adalah dengan memungkinkan server untuk menentukan protokol nan diizinkan untuk memuat konten.
Selain itu, CSP memungkinkan server untuk mengarahkan ulang semua permintaan dari HTTP ke HTTPS secara otomatis. Artinya, jika pengguna mencoba mengakses website menggunakan HTTP, mereka bakal secara otomatis diarahkan ke jenis HTTPS nan lebih aman.
Selain itu, server dapat menandai semua cookie dengan atribut “secure”, nan berfaedah cookie hanya bakal dikirim melalui hubungan HTTPS sehingga melindungi info pengguna dari penyadapan.
Website juga dapat menggunakan header HTTP Strict-Transport-Security (HSTS) untuk memastikan bahwa browser hanya terhubung ke situs melalui saluran terenkripsi. Melalui HSTS, browser bakal mengingat untuk selalu menggunakan HTTPS saat mengakses situs tertentu apalagi jika pengguna mengetikkan alamat HTTP secara tidak sengaja.
Mempromosikan Praktek Terbaik (Best Practices)
Salah satu kegunaan krusial dari Kebijakan Keamanan Konten (CSP) adalah kemampuannya untuk mendorong praktik terbaik dalam pengembangan dan pengelolaan website.
Ketika mengimplementasikan CSP, mungkin bakal menghadapi tantangan dengan kode pihak ketiga nan seringnya tidak kondusif namalain berbobot buruk. Banyak kode pihak ketiga menggunakan style inline nan tidak kondusif dan fungsi-fungsi rawan seperti eval(), dan seringnya dimuat dari beragam server nan berbeda.
CSP membantu mengatasi masalah ini dengan memaksa developer dan penyedia pihak ketiga untuk membersihkan kode mereka. Melalui penerapan CSP, kalian kudu menentukan dengan tepat sumber mana nan diizinkan untuk menjalankan skrip di situs kalian.
Artinya, kalian perlu meninjau dan mengevaluasi kode pihak ketiga nan digunakan, memastikan bahwa mereka mematuhi standar keamanan nan tinggi. Proses ini mungkin terasa merepotkan pada awalnya tetapi dalam jangka panjang, proses ini bakal meningkatkan kualitas dan keamanan kode nan digunakan di situs kalian.
Selain itu, CSP mendorong untuk melayani semua konten dari sumber nan konsisten. Hal ini berfaedah mengurangi ketergantungan pada banyak server berbeda dan memastikan bahwa semua skrip, gambar, dan file lainnya berasal dari sumber nan tepercaya dan terkontrol.
Dengan melakukan ini, kalian dapat meningkatkan performa website lantaran permintaan ke server bakal lebih efisien dan dapat diandalkan. CSP juga memberi kesempatan bagi kalian untuk bekerja lebih erat dengan vendor pihak ketiga.
Jika vendor tersebut menggunakan praktik nan tidak kondusif namalain mempengaruhi performa situs kalian dengan banyak permintaan tambahan, kalian dapat meminta mereka untuk memperbaiki dan mengoptimalkan kode mereka.
Reporting
Salah satu fitur nan sangat berfaedah dari Kebijakan Keamanan Konten (CSP) adalah skill untuk mempromosikan pelaporan kejadian keamanan di website.
Ketika menjalankan website, kalian mungkin tidak selalu tahu apa nan sebenarnya terjadi pada situs tersebut ketika diakses oleh pengguna dari beragam letak dan kondisi jaringan nan berbeda.
Di sinilah fitur pelaporan CSP menjadi sangat penting. Melalui pengaktifan pelaporan CSP, kalian dapat menerima laporan otomatis setiap kali ada pelanggaran kebijakan keamanan nan terjadi di situs kalian. Laporan ini bakal dikirim ke URL nan ditentukan, memungkinkan untuk memantau dan menganalisis aktivitas nan mencurigakan namalain tidak sah.
Fitur pelaporan ini sangat berfaedah lantaran memberikan wawasan tentang apa nan terjadi di situs kalian di bumi nyata, bukan hanya di lingkungan pengetesan nan terkontrol.
Contoh Penerapan Content Security Policy
Untuk lebih memahami langkah kerja Kebijakan Keamanan Konten (Content Security Policy namalain CSP), berikut ini beberapa contoh penerapannya.
Memuat Sumber Daya Hanya dari HTTPS
| 1 | Content-Security-Policy: default-src https: |
Kode CSP di atas menginstruksikan browser untuk hanya memuat sumber daya dari situs nan menggunakan protokol HTTPS. Sehingga, semua sumber daya nan tidak menggunakan HTTPS bakal diblokir.
Hal ini membantu memastikan bahwa info nan ditransfer antara browser dan server dienkripsi dan kondusif dari penyadapan.
Mengizinkan Eksekusi Skrip dari Domain Tertentu
Content-Security-Policy: script-src ‘self’ www.google-analytics.com linuxsec.org
CSP ini memungkinkan skrip untuk dieksekusi hanya jika berasal dari domain saat ini (didefinisikan dengan ‘self’), www.google-analytics.com, namalain linuxsec.org. Melalui pengizinan skrip nan hanya dari sumber nan diketahui dan dipercaya, kalian dapat mencegah eksekusi skrip rawan dari domain nan tidak dikenal.
Mengizinkan Sumber Daya dari Subdomain
| 1 | Content-Security-Policy: default-src ‘self’ *.zonawibu.net |
CSP ini menggunakan wildcard (*) untuk mengizinkan pemuatan sumber daya dari domain saat ini dan semua subdomain dari zonawibu.net. Hal ini berfaedah saat mempunyai banyak subdomain dan mau mengizinkan pemuatan konten dari semua subdomain tersebut tanpa perlu menuliskan masing-masing secara eksplisit.
Header Keamanan Content Security Policy
Bagi pemilik website nan mau meningkatkan keamanan dengan menerapkan Kebijakan Keamanan Konten (Content Security Policy namalain CSP), ada beberapa pengarahan nan dapat didefinisikan dalam header keamanan CSP.
Beberapa pengarahan ini mencakup beragam aspek konten nan diizinkan namalain diblokir. Berikut ini beberapa pengarahan nan direkomendasikan oleh OWASP (Open Web Application Security Project):
default-src
Menentukan kebijakan pemuatan untuk semua jenis sumber daya jika tidak ada pengarahan unik nan ditentukan (fallback). Contoh: default-src ‘self’ nan artinya semua konten kudu dimuat dari sumber nan sama dengan halaman.
script-src
Menentukan dari mana skrip dapat dijalankan. Contoh: script-src ‘self’ https://apis.google.com nan artinya hanya skrip dari domain nan sama namalain dari Google API nan diizinkan.
object-src
Menentukan dari mana sumber daya seperti plugin dapat dimuat. Contoh: object-src ‘none’ nan artinya tidak ada plugin nan diizinkan.
style-src
Menentukan dari mana style (CSS) dapat diterapkan. Contoh: style-src ‘self’ https://fonts.googleapis.com nan artinya hanya style dari domain nan sama namalain dari Google Fonts nan diizinkan.
img-src
Menentukan dari mana gambar dapat dimuat. Contoh: img-src ‘self’ https://example.com nan artinya hanya gambar dari domain nan sama namalain dari example.com nan diizinkan.
media-src
Menentukan dari mana video dan audio dapat dimuat. Contoh: media-src ‘self’ https://media.example.com nan artinya hanya media dari domain nan sama namalain dari media.example.com nan diizinkan.
frame-src
Menentukan dari mana frame dapat dimuat. Contoh: frame-src ‘self’ https://example.com nan artinya hanya frame dari domain nan sama namalain dari example.com nan diizinkan.
frame-ancestors
Menentukan sumber nan sah nan dapat membingkai laman menggunakan <frame>, <iframe>, <object>, <embed>, namalain <applet>. Contoh: frame-ancestors ‘none’ nan artinya tidak ada laman nan diizinkan untuk membingkai laman tersebut.
font-src
Menentukan dari mana font dapat dimuat. Contoh: font-src ‘self’ https://fonts.example.com nan artinya hanya font dari domain nan sama namalain dari fonts.example.com nan diizinkan.
connect-src
Menentukan URI mana nan dapat dimuat menggunakan antarmuka skrip. Contoh: connect-src ‘self’ https://api.example.com nan artinya hanya hubungan ke domain nan sama namalain ke api.example.com nan diizinkan.
form-action
Menentukan URI mana nan dapat digunakan sebagai tindakan dari komponen form HTML. Contoh: form-action ‘self’ https://forms.example.com nan artinya hanya blangko nan mengarah ke domain nan sama namalain forms.example.com nan diizinkan.
sandbox
Menentukan kebijakan sandbox HTML nan diterapkan oleh pemasok pengguna ke sumber daya nan dilindungi. Contoh: sandbox allow-scripts nan artinya hanya skrip nan diizinkan dalam konteks sandbox.
script-nonce
Menentukan eksekusi skrip dengan mewajibkan kehadiran nonce nan ditentukan pada komponen skrip. Contoh: script-src ‘nonce-2726c7f26c’ nan artinya hanya skrip dengan nonce 2726c7f26c nan diizinkan.
plugin-types
Menentukan set plugin nan dapat dipanggil oleh sumber daya nan dilindungi dengan membatasi jenis sumber daya nan dapat disematkan. Contoh: plugin-types application/pdf nan artinya hanya plugin PDF nan diizinkan.
reflected-xss
Menginstruksikan pemasok pengguna untuk mengaktifkan namalain menonaktifkan heuristik apa pun nan digunakan untuk menyeleksi namalain memblokir serangan XSS reflektif. Contoh: reflected-xss block nan artinya pemasok pengguna bakal memblokir serangan XSS reflektif.
report-uri
Menentukan URI tempat pemasok pengguna mengirim laporan tentang pelanggaran kebijakan. Contoh: report-uri /csp-violation-report-endpoint/ nan artinya laporan pelanggaran CSP bakal dikirim ke endpoint tersebut.
Okay, jadi itulah penjelasan mengenai Content Security Policy namalain CSP. Semoga bisa menambah insight kalian, ya 🙂
Luncurkan website berbasis WordPress kalian dengan Jetorbit yuk, dengan fitur nan membikin web jadi sigap serta cuma-cuma Theme Premium! Lebih sigap menggunakan WordPress Hosting untuk keperluan website Berita, Portal, Toko Online, dan Blogging berbasis WordPress.
2 tahun yang lalu
English (US) ·
Indonesian (ID) ·