Defaults.Exposed

Defaults.ExposedPembaikan › HSTS (Strict-Transport-Security)

Cara memperbaiki HSTS (Strict-Transport-Security)

HSTS ialah arahan satu baris yang laman web anda berikan kepada setiap pelayar: 'sentiasa kembali kepada saya melalui sambungan selamat dan tersulitkan — tidak pernah yang tidak selamat.' Tanpanya, kunci laman anda boleh dilucutkan secara senyap di WiFi dikongsi, dan lawatan pertama ke laman anda terdedah.

Kesimpulan untuk perniagaan anda: Mempunyai HTTPS (kunci) bukan sama dengan menguatkuasakannya. Tanpa HSTS, penyerang di WiFi yang sama dengan pelanggan anda boleh secara senyap menurunkan taraf sambungan kepada HTTP biasa yang tidak disulitkan — menangkap log masuk, butiran kad dan data borang sementara pelanggan tidak nampak apa-apa yang salah. Sijil SSL anda, yang mungkin anda bayar, diselaput sekitar. Pembetulan adalah percuma dan mengambil masa kira-kira 15 minit bagi sesiapa yang menjalankan laman anda.

Apakah kos yang boleh timbul

Mengapa ia penting. HTTPS melindungi sambungan setelah ia disulitkan — tetapi ia tidak memaksa pelayar untuk menggunakannya. Penyerang mengeksploitasi jurang itu dengan 'SSL stripping': pada mana-mana rangkaian dikongsi mereka secara senyap mengekalkan pengunjung pada HTTP tidak selamat, membaca segala-galanya. HSTS memberitahu pelayar untuk menolak HTTP biasa untuk domain anda sepenuhnya, untuk jangka masa yang lama, supaya jurang tertutup selepas lawatan pertama. Ia adalah satu pengepala respons, percuma untuk ditambah, dan pada pemarkahan kami ia bernilai mata sebenar kerana nilai yang hilang atau terlalu pendek mendedahkan setiap pengunjung di WiFi awam.

Apa ini, dalam bahasa mudah

Anda hampir pasti mempunyai HTTPS — kunci kecil dalam bar pelayar. Baik. Tetapi inilah bahagian yang hampir tiada siapa diberitahu: mempunyai HTTPS bukan sama dengan menguatkuasakannya.

HTTPS menjadikan sambungan disulitkan setelah pelayar memutuskan untuk menggunakannya. HSTS — singkatan untuk HTTP Strict Transport Security — adalah arahan yang membuatkan pelayar sentiasa menggunakannya. Ia adalah satu baris tidak kelihatan yang laman web anda hantar kepada setiap pengunjung yang berkata, secara berkesan:

“Mulai sekarang, untuk domain saya, hanya bercakap dengan saya melalui sambungan selamat. Tidak pernah yang tidak selamat. Jangan cuba.”

Pelayar mengingati itu dan mematuhinya selagi anda memberitahunya — biasanya setahun. Selepas lawatan selamat pertama pengunjung, pelayar mereka akan menolak untuk memuatkan laman anda melalui HTTP biasa yang tidak disulitkan, walaupun sesuatu cuba memaksanya.

Tanpa HSTS, peraturan “sentiasa gunakan versi selamat” tidak wujud — dan penyerang tahu dengan tepat cara mengeksploitasi jurang itu.

Apa yang ini boleh koskan anda

Ini adalah senario realistik dan harian. Kami tidak pernah menamakan perniagaan sebenar; ini adalah ilustrasi bagaimana jurang digunakan.

  1. Checkout di kedai kopi. Pelanggan membuka kedai anda di WiFi kafe dan pergi untuk checkout. Penyerang di rangkaian yang sama menjalankan alat percuma yang terkenal yang mengekalkan pelanggan pada HTTP biasa dan bukannya HTTPS. Pelanggan melihat apa yang kelihatan seperti laman biasa anda — tiada amaran, tiada kunci yang rosak di tempat yang mereka pandang — dan menaip butiran kad mereka. Penyerang membaca setiap tekukan kekunci. Sijil SSL anda tidak membuat apa-apa, kerana sambungan tidak pernah dibenarkan menjadi selamat.

  2. Pekerja yang berjalan. Ahli kakitangan log masuk ke panel admin atau mel web anda dari hotel atau lapangan terbang. Helah penurunan taraf yang sama menangkap nama pengguna dan kata laluan mereka. Kini penyerang mempunyai cara masuk ke dalam perniagaan anda — bukan kerana dasar kata laluan anda lemah, tetapi kerana halaman log masuk boleh dicapai melalui HTTP tidak selamat.

  3. Urusan perniagaan yang tertangguh. Pelanggan yang lebih besar menghantar soal selidik keselamatan standard mereka sebelum menandatangani. Satu baris bertanya: “Adakah laman web anda menguatkuasakan HTTPS melalui HSTS?” Kenalan IT anda perlu menjawab “tidak,” dan proses perolehan berhenti sementara anda bergegas untuk membetulkan tetapan percuma 15 minit yang kini kelihatan seperti bendera merah di hadapan pembeli.

  4. Semakan insurans siber atau pematuhan. Imbasan penanggung insurans, atau juruaudit yang menyemak postur perlindungan data anda, menanda pengepala yang hilang. Penyulitan data peribadi adalah jangkaan eksplisit di bawah peraturan perlindungan data (GDPR Artikel 32), dan “kami mempunyai sijil tetapi tidak menguatkuasakannya” adalah kedudukan yang lemah untuk berada.

  5. Rasa selamat yang palsu. Anda membayar untuk SSL, kunci muncul, dan semua orang menganggap laman selamat. Ia sebahagian besarnya adalah — sehingga pelanggan berada di rangkaian dikongsi, yang adalah tepat apabila mereka paling terdedah dan paling tidak berkemungkinan menyedari ada yang salah.

Benang melalui semua ini: kos bukan abstrak. Ia adalah kad atau log masuk pelanggan sebenar, ditangkap pada masa yang paling teruk, tanpa sebarang penggera berbunyi.

Apa yang ia sebenarnya

Apabila pelayar meminta laman anda untuk halaman, pelayan anda menghantar semula halaman ditambah beberapa “pengepala” tidak kelihatan — arahan tambahan yang pelayar baca tetapi pengunjung tidak pernah lihat. HSTS adalah salah satu pengepala itu:

Strict-Transport-Security: max-age=31536000; includeSubDomains; preload

Tiga bahagian penting:

Mengapa “lawatan pertama” penting

HSTS mempunyai satu had yang wujud: pelayar hanya mematuhi peraturan itu setelah ia melihat pengepala sekurang-kurangnya sekali. Jadi sambungan pertama pengunjung baharu masih merupakan tetingkap kecil pendedahan. Dua perkara mempersempitnya: pengalihan HTTP-ke-HTTPS (yang membawa mereka ke versi selamat dengan cepat) dan preload (yang mengalih tetingkap sepenuhnya). Itulah sebabnya persediaan lengkap memasangkan HSTS dengan pengalihan yang betul.

Apa yang “baik” kelihatan — dan bagaimana ia dinilai

Semakan kami membaca pengepala langsung anda dan menilai max-age:

Nilai max-ageApa yang ia bermaksudKeputusan
1 tahun atau lebih (≥ 31536000)Cemerlang — tetapan yang disyorkanMarkah penuh
6 bulan atau lebih (≥ 15768000)Baik, tetapi bukan tahun penuhSepara
1 hari atau lebih (≥ 86400)Lemah — terlalu pendek untuk boleh dipercayaiRendah / separa
Di bawah 1 hari, atau tiada pengepala langsungPada dasarnya tiada perlindunganGagal (keparahan tinggi)

Jadi pengepala yang wujud tetapi ditetapkan kepada beberapa minit dianggap sebagai gagal — ia kelihatan dikonfigurasi tetapi tidak melakukan kerja. Sasarkan satu tahun. Semakan juga mencatat sama ada includeSubDomains dan preload hadir.

Cara membetulkannya (percuma, ~15 minit)

Berikan bahagian ini kepada sesiapa yang menjalankan laman web anda — orang IT, pembangun web, atau sokongan pengehosan anda. Pembetulan adalah percuma. Ia adalah satu pengepala tunggal, atau togol dalam platform pengehosan anda. Tiada yang perlu dibeli.

Satu peraturan penting terlebih dahulu: HSTS adalah melekit — setelah diaktifkan, pelayar akan menolak HTTP biasa untuk domain anda selama max-age penuh. Jadi sahkan HTTPS berfungsi dengan betul pada laman utama anda dan setiap subdomain sebelum menghidupkannya secara luas. Laluan selamat ialah: uji dengan nilai pendek → sahkan tiada yang rosak → naikkan kepada setahun.

Langkah 1 — Pastikan HTTPS sudah berfungsi di mana-mana

Lawati laman anda dan subdomain utama melalui https:// dan sahkan ia dimuatkan dengan bersih dengan sijil yang sah. Juga sahkan permintaan http:// biasa dialihkan ke https://. (Jika tidak, betulkan pengalihan HTTP-ke-HTTPS dahulu — HSTS menganggap ia sudah ada.)

Langkah 2 — Tambah pengepala (pilih platform anda)

Cloudflare (atau CDN yang serupa): Ini adalah yang paling mudah. Pergi ke SSL/TLS → Edge Certificates → HTTP Strict Transport Security (HSTS) dan aktifkan. Tetapkan Max-Age kepada 6 bulan atau 12 bulan, dan aktifkan “Apply HSTS policy to subdomains” setelah anda pasti semua subdomain berada pada HTTPS.

Nginx: tambah dalam blok HTTPS server anda:

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;

Apache: pastikan mod_headers diaktifkan, kemudian tambah ke hos maya HTTPS anda:

Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"

Microsoft IIS: tambah ke web.config dalam <customHeaders>:

<add name="Strict-Transport-Security" value="max-age=31536000; includeSubDomains; preload" />

Nota Google Workspace / Microsoft 365: ini menggerakkan e-mel anda, bukan pengehosan laman web anda — HSTS ditetapkan di mana sahaja laman web awam anda sebenarnya berada (CDN, pelayan web atau pembina laman anda), bukan dalam admin Workspace/365. Jika laman anda berada pada pembina seperti Squarespace, Wix atau Shopify, HSTS biasanya dikendalikan untuk anda; semak tetapan SSL/keselamatan mereka jika semakan kami menandakannya.

Langkah 3 — Uji kecil, kemudian komit

Mulakan dengan max-age=300 (5 minit). Sahkan laman masih dimuatkan dengan sempurna di mana-mana. Kemudian naikkan kepada max-age=31536000 (satu tahun). Itulah tetapan markah penuh.

Langkah 4 (pilihan, standard emas) — pramuatkan

Setelah anda yakin dan telah menjalankan pengepala satu tahun dengan includeSubDomains untuk beberapa ketika, anda boleh menghantar domain anda di hstspreload.org untuk dibina dalam pelayar. Ini menutup tetingkap lawatan pertama sepenuhnya. Anggap ia sebagai komitmen yang disengajakan — mengalih domain dari senarai adalah perlahan.

Kesilapan biasa

Soalan Lazim

Kami sudah mempunyai HTTPS dan kunci muncul. Bukankah itu cukup?

Tidak — dan ini adalah salah faham yang paling biasa. Kunci bermakna sambungan BOLEH disulitkan; ia tidak memaksa pelayar untuk menggunakan versi yang disulitkan. Tanpa HSTS, penyerang di rangkaian yang sama boleh mengekalkan pengunjung pada HTTP biasa (dipanggil SSL stripping) dan membaca semua yang mereka taip, sementara pelanggan melihat laman yang kelihatan normal. HSTS adalah arahan yang menjadikan 'hanya disulitkan' mandatori. HTTPS tanpa HSTS adalah pintu berkunci yang sebenarnya tidak berkancing.

Adakah ini mahal atau berisiko untuk dihidupkan?

Pembetulan itu sendiri percuma — ia adalah satu baris dalam pelayan web anda atau togol dalam CDN anda — dan mengambil masa kira-kira 15 minit. Satu berhati-hati yang sebenar: HSTS adalah melekit. Setelah pelayar melihatnya, ia akan menolak HTTP biasa untuk domain anda selama tempoh yang anda nyatakan. Jadi anda mesti yakin HTTPS berfungsi pada laman utama DAN setiap subdomain anda sebelum mengaktifkannya secara luas. Mulakan dengan nilai ujian yang pendek, sahkan tiada yang rosak, kemudian naikkan kepada setahun. Dilakukan mengikut urutan itu, risikonya boleh diabaikan.

Apa yang 'baik' sebenarnya kelihatan?

Masa-maks sekurang-kurangnya satu tahun (31536000 saat). Semakan kami memberikan markah penuh pada setahun atau lebih, markah separa pada enam bulan, lemah/separa pada satu hari, dan menganggap apa-apa di bawah satu hari sebagai tidak wujud. Persediaan paling kuat juga menambah includeSubDomains (merangkumi shop.yoursite.com, app.yoursite.com, dll.) dan preload (membuat perlindungan ke dalam pelayar supaya walaupun lawatan pertama selamat).

Apakah 'preload' dan adakah kami memerlukannya?

HSTS hanya melindungi pengunjung SELEPAS pelayar mereka telah melihat pengepala sekurang-kurangnya sekali — jadi permintaan pertama pengunjung baharu masih merupakan tetingkap kecil. Senarai pramuatkan HSTS, dibina dalam Chrome, Firefox, Safari dan Edge, menutup tetingkap itu dengan menghantar domain anda ke pelayar terlebih dahulu. Ia adalah pilihan dan komitmen yang sedikit lebih besar (penyingkiran adalah perlahan), tetapi ia adalah standard emas. Bagi kebanyakan perniagaan kecil, masa-maks satu tahun dengan includeSubDomains sudah merupakan keputusan yang kukuh dan selamat; preload adalah langkah tambahan setelah anda mantap.

Kami menggunakan Squarespace / Wix / Shopify — adakah kami perlu melakukan apa-apa?

Kebanyakan pembina laman web yang dihoskan sepenuhnya (Squarespace, Wix, Shopify dan yang serupa) menguatkuasakan HTTPS dan selalunya menetapkan HSTS untuk anda secara automatik — jadi anda mungkin sudah lulus tanpa perlu melakukan apa-apa. Pengecualian adalah apabila anda menggunakan domain tersuai atau CDN di hadapan laman anda; kemudian tetapan boleh jatuh melalui celah. Jalankan semakan: jika ia lulus, anda sudah selesai. Jika ia menanda, pembetulan adalah togol dalam tetapan SSL/keselamatan platform anda, atau satu baris pada CDN anda.

Jika kami tidak membetulkannya, adakah ia menurunkan gred kami?

Ya. HSTS adalah semakan keselamatan web yang dinilai, bukan maklumat — pengepala yang hilang atau terlalu pendek merugikan mata dan dinilai keparahan tinggi, kerana ia secara langsung mendedahkan data pengunjung anda di rangkaian dikongsi. Ia juga merupakan salah satu mata yang paling murah untuk dipulihkan: satu pengepala percuma, kira-kira 15 minit kerja.