Cara Mengatur Hsts Di Website Hugo Netlify
Apa itu HSTS?
HSTS, yang merupakan singkatan dari “HTTP Strict Transport Security” adalah cara untuk menambahkan keamanan ekstra ke situs web HTTPS. Ini membantu mencegah penyerang menghindari fitur keamanan HTTPS.
Untuk deskripsi lengkap, lihat halaman HSTS Wikipedia .
Daftar Pramuat HSTS Google
Meskipun bukan bagian resmi dari spesifikasi HSTS, Google mengelola daftar situs yang menggunakan HSTS.
Alasan Google melakukan ini adalah agar situs dapat menggunakan HSTS pada kunjungan pertama pengguna.
Jika daftar HSTS Google tidak ada, HSTS hanya akan benar-benar muncul pada kunjungan kedua dan berikutnya pengguna, meninggalkan lubang keamanan pada kunjungan pertama pengguna.
Cara Google mengaktifkan HSTS pada kunjungan pertama pengguna ke suatu situs adalah dengan memasukkan daftar semua situs HSTS yang dikenal dalam kode sumber browser Chrome-nya. Peramban lain, termasuk Firefox, Edge, Safari, dan Opera juga menggunakan daftar pramuat HSTS Google.
Bagaimana cara memeriksa apakah situs web ada dalam daftar Preload HSTS Google Google
Anda dapat memeriksa apakah situs Anda menggunakan HSTS atau tidak di situs web HSTS Preload Google .
Sebelum saya menambahkan HSTS ke situs ini, saya memeriksanya dan mendapatkan hasil sebagai berikut:
Status: tirinfo.com tidak dimuat sebelumnya.
Kelayakan: Agar tirinfo.com memenuhi syarat untuk pramuat, kesalahan di bawah ini harus diselesaikan:
Kesalahan: Tidak ada includeSubDomains arahan
Header harus berisi includeSubDomainsarahan.
Kesalahan: Tidak ada preload arahan
Header harus berisi preloadarahan.
Ketika saya melihat itu, tentu saja saya ingin menambahkan HSTS. Inilah cara saya melakukannya.
Cara membuat situs web Hugo yang dihosting di Netlify memenuhi syarat untuk daftar pramuat HSTS Google
Sebelum melompat ke spesifik, inilah sedikit latar belakang:
Mengapa saya menggunakan file konfigurasi Netlify daripada area admin untuk mengonfigurasi situs Hugo saya?
Dari pada menggunakan area admin Netlify untuk mengatur detail konfigurasi saya, saya mencantumkannya dalam file bernama netlify.toml, yang berada di root situs saya. Saya melakukan ini karena beberapa alasan:
Semua pengaturan pada satu halaman. Saya dapat melihat semua pengaturan konfigurasi Netlify saya secara sekilas, daripada melakukan paging antar layar di area admin Netlify.
Portabilitas. Saya dapat dengan mudah menyalin dan menempelkan pengaturan konfigurasi Netlify di situs saya.
Kontrol versi / changelog. Semua pengaturan Netlify saya disimpan di repo GitHub saya (dalam netlify.toml file yang disebutkan di atas ), sehingga saya dapat melihat perubahan mana yang saya buat saat itu. Jika saya menggunakan Netlify UI, saya tidak akan memiliki changelog.
Pengaturan tambahan. Beberapa pengaturan tidak tersedia di Netlify UI, tetapi ini tidak berarti pengaturan tersebut tidak ada—Anda hanya perlu menentukannya netlify.toml saja.
Oke, begitulah, inilah cara saya mengatur HSTS di situs Netlify Hugo saya di netlify.toml:
[[headers]]
for = "/*"
[headers.values]
Strict-Transport-Security = "max-age=63072000; includeSubDomains; preload"
Content-Security-Policy = "default-src data: 'unsafe-inline' 'unsafe-eval' https:; script-src data: 'unsafe-inline' 'unsafe-eval' https: blob:; style-src data: 'unsafe-inline' https:; img-src data: https: blob:; font-src data: https:; connect-src https: wss: blob:; media-src https: blob:; object-src https:; child-src https: data: blob:; form-action https:; block-all-mixed-content"
X-Frame-Options = "DENY"
X-Content-Type-Options = "nosniff"
Referrer-Policy = "no-referrer"
Feature-Policy = "microphone 'none'; geolocation 'none'"
NB: Itu max-agedari 63072000dua tahun. Minimum Google adalah satu tahun, tetapi tampaknya Netlify menginginkan dua tahun . Saya tidak memiliki subdomain di situs ini, tetapi saya menjalankan includeSubDomains, sekali lagi, karena Netlify tampaknya menginginkannya (lihat tautan di paragraf ini).
Saya menyimpan, melakukan, dan mendorong perubahan tersebut ke Netlify. Saatnya untuk melihat apakah itu berhasil!
Saya kembali ke situs Pramuat HSTS Google dan memeriksa situs saya lagi.
Kali ini, saya melihat gambar yang lebih baik:
Status: tirinfo.com tidak dimuat sebelumnya.
Kelayakan: tirinfo.com memenuhi syarat untuk daftar pramuat HSTS.
Dan tombol “kirim”, diikuti dengan permintaan persetujuan berikut:
Saya adalah pemilik situs tirinfo.com atau memiliki izin untuk memuat HSTS terlebih dahulu. (Jika tidak demikian, tirinfo.com mungkin secara tidak sengaja mengirimkan HSTS preload directive. Harap hubungi [email protected] untuk memberi tahu kami.)
Saya mengerti bahwa pramuat tirinfo.com melalui formulir ini akan mencegah semua subdomain dan subdomain bersarang diakses tanpa sertifikat HTTPS yang valid:
*.tirinfo.com
*.*.tirinfo.com …
Saya menekan tombol “kirim” itu dan melihat pemandangan yang menyenangkan ini:
Sukses
tirinfo.com sekarang menunggu penyertaan dalam daftar pramuat HSTS!
Harap pastikan bahwa tirinfo.com terus memenuhi semua persyaratan pramuat, atau itu akan dihapus. Kunjungi kembali situs ini selama beberapa minggu ke depan untuk memeriksa status domain Anda.
Pertimbangkan juga untuk memindai masalah TLS menggunakan SSL Labs.