Pilih paket

HSTS dan header keamanan, dari .htaccess

Fungsi HSTS, X-Content-Type-Options, Referrer-Policy, dan header keamanan lain, cara memasangnya di .htaccess hosting NBT Host, dan cara memeriksanya.

  • Diperbarui
panduan · keamanan
Langkah
8
Waktu baca
4mnt
Bagian
6
Mulai panduan

Bersama setiap halaman, server mengirim ke browser beberapa baris instruksi yang disebut header (headers). Sebagian header meminta browser lebih berhati-hati: hanya memakai https://, tidak mengizinkan website lain membingkai halaman Anda, tidak meneruskan alamat lengkap halaman. Header cukup dipasang sekali di .htaccess, dan melindungi semua pengunjung.

Yang akan Anda capai

  • mengaktifkan HSTS, agar browser hanya membuka website lewat https://;
  • menambahkan header dasar yang tidak merusak apa pun di website biasa;
  • memeriksa bahwa server mengirimkannya.

Sebelum memulai

  • Sertifikat SSL valid dan “Force https” aktif untuk domain dan untuk www (lihat Sertifikat SSL gratis (Let's Encrypt) dan Redirect ke HTTPS dan www). HSTS tanpa sertifikat yang valid akan memblokir website.
  • Buat salinan file .htaccess: di Enhance, tab “Files”, klik kanan pada .htaccess » “Download”.
  • Server NBT Host memakai Apache, yang membaca aturan dari .htaccess.
  • Nama menu Enhance ditulis dalam bahasa Inggris, persis seperti di layar. Jika panel tampil dalam bahasa lain, ubah ke bahasa Inggris dari kanan atas: “My account” » “Language”.

Fungsi setiap header

HeaderFungsi
Strict-Transport-Security (HSTS)browser mengingat, selama periode yang ditentukan, bahwa website hanya dibuka lewat https://, meskipun seseorang mengetik http://
X-Content-Type-Options: nosniffbrowser tidak “menebak” jenis file; file yang diunggah sebagai gambar tidak bisa dijalankan sebagai script
X-Frame-Options: SAMEORIGINwebsite lain tidak bisa membingkai halaman Anda di dalam <iframe>, jadi tidak bisa menipu pengunjung agar mengklik tombol tersembunyi
Referrer-Policy: strict-origin-when-cross-originsaat pengunjung pindah ke website lain, website tersebut hanya tahu domain Anda, bukan alamat lengkap halaman
Permissions-Policymemblokir akses halaman ke kamera, mikrofon, atau lokasi, jika website tidak memakainya

Langkah-langkah

A. Menambahkan header

  1. Di Enhance, buka “Websites”, website Anda, tab “Files”, lalu masuk ke public_html.
  2. Klik kanan pada .htaccess » “Edit”. Jika belum ada, buat dengan “New file”.
  3. Tambahkan di bagian akhir file:
    <IfModule mod_headers.c>
      Header always set Strict-Transport-Security "max-age=31536000" "expr=%{HTTPS} == 'on'"
      Header always set X-Content-Type-Options "nosniff"
      Header always set X-Frame-Options "SAMEORIGIN"
      Header always set Referrer-Policy "strict-origin-when-cross-origin"
      Header always set Permissions-Policy "camera=(), microphone=(), geolocation=()"
    </IfModule>
  4. Di WordPress, letakkan blok ini di luar baris # BEGIN WordPress dan # END WordPress: isi di antara keduanya bisa ditulis ulang oleh WordPress.
  5. Klik “Save”.

max-age=31536000 berarti satu tahun. Jika ingin mulai dengan hati-hati, isi dulu max-age=300 (5 menit), periksa website selama sehari, lalu naikkan ke satu tahun.

B. Memeriksa

  1. Buka website, tekan F12 (di Mac Cmd+Option+I), tab Network (Jaringan), muat ulang halaman, lalu klik baris pertama, yaitu baris halaman itu sendiri. Di Response Headers harus terlihat header yang Anda tambahkan.
  2. Atau, dari Terminal (Mac, Linux) atau PowerShell (Windows): curl -I https://domeniul-tau.ro/.
  3. Periksa halaman-halaman penting: formulir, pembayaran, peta, video yang disematkan.

Yang TIDAK boleh ditambahkan tanpa paham risikonya

  • includeSubDomains dan preload pada HSTS. Dengan includeSubDomains, setiap subdomain tanpa sertifikat (misalnya layanan pihak ketiga di programari.domeniul-tau.ro) tidak bisa diakses. preload memasukkan domain ke daftar yang tertanam di browser, dan keluar dari daftar itu sulit, butuh berbulan-bulan. Website kecil tidak membutuhkannya.
  • Content-Security-Policy (CSP). Ini header yang paling kuat, tetapi juga paling mudah salah: CSP yang terlalu ketat memblokir Google Analytics, font, chat, atau pembayaran. Jika ingin memakainya, mulai dengan versi yang hanya melaporkan, Content-Security-Policy-Report-Only, dan minta bantuan pembuat website Anda.
  • X-Frame-Options di website yang memang harus dibingkai oleh website Anda yang lain (misalnya formulir yang ditaruh dalam <iframe> di domain lain). Dalam kasus itu, hapus barisnya.

Jika ada kendala

  • Website menampilkan “500 Internal Server Error” setelah disimpan. Ada salah ketik di blok, biasanya tanda kutip yang hilang. Hapus blok, simpan, lalu tempel lagi dengan menyalin persis (lihat Error 500 Internal Server Error dan halaman putih).
  • Header tidak terlihat. Pastikan Anda menyimpan .htaccess di folder website (public_html atau folder subdomain), lalu kosongkan cache (plugin cache, Cloudflare) dan muat ulang.
  • Setelah HSTS, sebuah subdomain tidak bisa dibuka. Subdomain tersebut tidak punya sertifikat yang valid. Terbitkan sertifikatnya (lihat Sertifikat SSL gratis (Let's Encrypt)). Jika Anda menambahkan includeSubDomains, hapus; browser yang sudah melihatnya akan mengingatnya sampai max-age habis.
  • <iframe> dari website Anda yang lain tidak lagi dimuat. Ini efek dari X-Frame-Options. Hapus barisnya atau hubungi kami, dan kami jelaskan alternatifnya dengan CSP frame-ancestors.
Dukungan

Mentok? Kita selesaikan bersama.

Tulis langkah mana yang tidak berhasil dan, jika bisa, kirimkan tangkapan layar. Kami akan membalas pada jam kerja.

Telepon dan WhatsApp+40 775 396 021
Jam kerjaSenin–Jumat, 09.00–18.00 waktu Rumania (14.00–23.00 WIB; saat musim panas Eropa 13.00–22.00 WIB)

Jangan pernah mengirimkan kata sandi kepada kami lewat WhatsApp atau email. Informasi apa yang membantu kami menyelesaikan masalah sekaligus: cara meminta bantuan.