Praktik terbaik keamanan web

Praktik terbaik untuk keamanan web

Cloud CDN dan Cloud Load Balancing dapat membantu Anda memenuhi praktik terbaik keamanan web, baik Anda menyajikan konten dari instance Compute Engine, bucket Cloud Storage, atau asal eksternal yang berada di luar Google Cloud.

Setel header keamanan

Spesifikasi HTTP memiliki sejumlah header yang mengontrol hal-hal berikut:

  • Perilaku klien
  • Cara konten disematkan
  • Cara konten ditayangkan di seluruh domain
  • Apakah akan selalu menggunakan TLS (HTTPS) saat terhubung ke domain tersebut

Kontrol ini biasanya direpresentasikan sebagai header respons HTTP, yang dapat Anda tetapkan untuk setiap backend (origin, dalam istilah CDN) sebagai header respons kustom untuk Load Balancer Aplikasi eksternal dan deployment Cloud CDN Anda.

Jika menggunakan Cloud Storage dan menyajikan konten web dari bucket, Anda dapat menggunakan Cloud CDN di depan bucket penyimpanan untuk menetapkan header keamanan web dan menyimpan konten populer dalam cache.

Header keamanan web yang paling berguna ditentukan dalam tabel berikut.

Nama header Deskripsi Contoh penggunaan
Strict-Transport-Security (HSTS) Memastikan domain Anda memiliki sertifikat SSL (TLS) yang valid sebelum Anda menetapkan header ini.

Memberi tahu klien bahwa mereka harus terhubung ke domain Anda langsung melalui HTTPS (SSL/TLS), agar tidak perlu mengalihkan dari HTTP ke HTTPS, yang lebih lambat dan menimbulkan risiko serangan person-in-the-middle.

Menyetel header ini secara efektif tidak dapat dibatalkan. Setelah menyimpan header ini dalam cache, klien browser modern tidak akan mencoba koneksi non-HTTPS, dan pengguna tidak dapat mengakses domain tempat header ini mereka terima, meskipun SSL tidak aktif. Perilaku ini mencegah penyerang mendowngrade protokol aman ke HTTP yang tidak dilindungi (dikenal sebagai serangan downgrade).

Saat menayangkan header Strict-Transport-Security, berhati-hatilah saat menambahkan perintah includeSubdomains atau preload. Perintah ini mengharuskan subdomain apa pun untuk menggunakan HTTPS, termasuk situs internal di domain yang sama. Misalnya, support.example.com saat disalurkan dari example.com.

Wajibkan klien untuk terhubung langsung melalui HTTPS pada semua koneksi mendatang, dalam cache perintah ini hingga dua tahun:

Strict-Transport-Security: max-age=3104000

X-Frame-Options Menunjukkan apakah browser dapat merender halaman di <frame>, <iframe>, <embed>, atau <object>. Hal ini membantu mencegah serangan click-jacking dengan mencegah konten Anda disematkan ke situs lain. Tolak semua iframing situs Anda: X-Frame-Options: DENY

Hanya izinkan situs Anda ke iframe (sematan): X-Frame-Options: SAMEORIGIN

Content-Security-Policy Untuk mengevaluasi Kebijakan Keamanan Konten situs, Anda dapat menggunakan alat CSP Evaluator Google. Jangan izinkan skrip inline, dan hanya muat skrip melalui HTTPS: Content-Security-Policy: default-src https:

Hati-hati saat memperkenalkan header keamanan baru ke situs yang ada, karena header tersebut dapat merusak skrip pihak ketiga, konten yang disematkan (misalnya, di iframe), atau aspek lainnya dari situs Anda. Sebelum melakukan perubahan pada traffic produksi, sebaiknya buat instance kedua dari bucket backend atau layanan dan pengujian backend Anda.

Anda dapat membaca selengkapnya tentang header keamanan web dan praktik terbaik di web.dev serta di situs infosec Mozilla.

Pengelolaan sertifikat dan TLS

Sertifikat yang dikelola memiliki karakteristik berikut:

  • Disediakan tanpa biaya
  • Dapat di-deploy ke load balancer dengan mudah
  • Diperpanjang otomatis
  • Didistribusikan secara global ke semua lokasi edge Google

TLS memberikan keaslian dengan memvalidasi bahwa data belum diubah selama pengiriman. Sertifikat TLS memberikan kerahasiaan dengan memastikan bahwa penyadap tidak dapat menentukan apa yang sedang dipertukarkan antara pengguna dan server. Hal ini penting untuk privasi dan keamanan pengguna.

Dengan sertifikat SSL, Anda dapat memanfaatkan protokol transportasi modern, seperti HTTP/2 dan protokol QUIC Google, yang keduanya memerlukan SSL (TLS). Protokol ini secara langsung meningkatkan performa konten web, penayangan media (seperti streaming video), dan keandalan di jaringan yang padat.

Google Cloud mendukung protokol TLS modern (seperti TLS 1.3) di seluruh layanan Cloud Load Balancing dan Cloud CDN.

Anda dapat menggunakan kebijakan SSL untuk meningkatkan versi minimum TLS. Sebaiknya naikkan versi ini ke TLS v1.2 jika Anda tidak perlu mendukung klien lama, seperti perangkat yang disematkan atau klien non-browser yang lebih lama (lebih dari 10 tahun). Secara global, TLS v1.0 dan TLS v1.1 mewakili kurang dari 0,5% koneksi di seluruh Google Cloud. Jika perlu mengidentifikasi atau mengaitkan klien tertentu dengan TLS versi lama, Anda dapat menggunakan variabel {tls_version} di header permintaan. Anda kemudian dapat mencatat informasi ini.

Langkah selanjutnya

  • Untuk memeriksa apakah Cloud CDN menyalurkan respons dari cache, baca artikel Melihat log.
  • Untuk mempelajari konten mana yang dapat di-cache atau tidak dapat di-cache, lihat Ringkasan caching.
  • Untuk melihat titik kehadiran Cloud CDN, lihat Lokasi cache.