Ada banyak diskusi saat saya sedang meneliti bagaimana membuat seluruh situs saya https. Jawaban terbanyak adalah mengarahkan http ke https (file .htaccess), yang tidak bagus, karena tidak baik melakukan pekerjaan yang sama dua kali (dua permintaan). Juga, "man in the middle" pertama kali mengambil http, dan saya ingin situs saya langsung di https. Apakah ada cara lain untuk membuat seluruh situs Anda https, dan bagaimana cara melakukannya? Misalnya, ketika pengguna mengetik di example.com, example.com itu secara otomatis masuk ke https, tanpa mengalihkan dari http atau yang lainnya terlebih dahulu?
14
Jawaban:
Tidak. Anda tidak dapat secara ajaib membuat browser pengunjung memilih protokol yang tepat. Redirect adalah cara untuk melakukannya.
sumber
http://en.wikipedia.org/wiki/HTTP_Strict_Transport_Security memungkinkan server Anda menunjukkan bahwa domain hanya dapat diakses melalui HTTPS. Ini hanya berlaku untuk permintaan berikutnya, sehingga akan ada pemuatan HTTP awal, tetapi permintaan di masa depan akan memuat HTTPS bahkan jika seseorang secara eksplisit mengetik HTTP.
IE belum mendukungnya, tetapi semua jurusan lain melakukannya.
sumber
Seperti yang dikatakan orang lain, Anda tidak dapat memaksa pengguna untuk memilih protokol yang tepat. Tetapi ketika pengguna mencoba menggunakan HTTP, apa yang harus Anda lakukan? Pengalihan juga tidak cukup, karena penyerang yang duduk di antara Anda dan klien dapat mencegat pengalihan, sehingga klien tidak pernah melihatnya. Klien akan terus mengirim HTTP polos, dan penyerang akan menghapus lapisan SSL dari server ( serangan stripping SSL ).
Satu-satunya cara pasti untuk mencegah itu adalah tidak melayani HTTP sama sekali . Jangan jawab pada port 80, kecuali mungkin untuk menyajikan halaman teks biasa yang mengarahkan pengguna untuk mencoba lagi dengan HTTPS (tetapi tidak memberikan tautan, yang dapat dimanipulasi penyerang). Ini akan memaksa pengguna untuk mengetik di
https://
browser mereka, sehingga mereka akan memulai koneksi dengan SSL dan mencegah serangan MITM.sumber
https://
. Sebaliknya, mereka akan mengatakan "huh, situsnya rusak" dan pergi. Skenario kasus terbaik mungkin adalahwww.example.com
merespons HTTP dan HTTPS, tetapi menjalankan aplikasi itu sendiri pada sesuatu sepertiadmin.example.com
hanya dengan HTTPS.Tidak sepenuhnya benar: Cara menggunakan DNS / Nama Host atau Cara lain untuk menyelesaikan ke IP tertentu: Port
Ada caranya, tetapi sebagian besar browser tidak menerapkan rfc2782.
sumber
ceejayoz memiliki jawaban terbaik untuk mencegah serangan yang disebutkan secara khusus di sini, tetapi saya ingin juga menunjukkan apa yang banyak orang di sini tidak temukan, yang pada dasarnya adalah bagian HTTP yang sudah diketahui oleh pihak lain. Anda ingin melakukan pengalihan 301 permanen. Ini memberi tahu klien untuk membuat permintaan lebih lanjut ke alamat baru. Jadi ya, jika seseorang mengetik URL yang salah, mereka akan membuat 2 permintaan TETAPI, di masa depan, klien yang baik seharusnya mendeteksi permintaan ke URL itu dan membuat permintaan yang benar sebagai gantinya untuk mencegah permintaan yang lebih sia-sia. Masalahnya adalah ini hanya untuk URL yang tepat. HSTS meningkatkan skema ini dengan juga mengatakan, 'untuk n detik berikutnya juga jangan izinkan koneksi yang tidak aman dari domain ini'.
Pengguna tidak boleh mengunjungi situs sensitif di lokasi yang tidak aman. Mereka khususnya tidak boleh mendaftar untuk mereka di lokasi yang tidak aman. Ini adalah prinsip dasar keamanan pengguna yang harus diajarkan seperti, 'jangan membuka lampiran dari sumber yang tidak tepercaya'. Yang benar-benar jawaban terbaik untuk mencegah serangan MiM untuk situs yang belum pernah dikunjungi.
Sebagai catatan, beberapa browser meningkatkan ini dengan juga mengatakan situs-situs tertentu yang dikenal selalu menggunakan HSTS. Sayangnya, Anda tidak bisa menambahkan diri sendiri ke daftar ini dengan mudah.
Bacaan lebih lanjut: http://coderrr.wordpress.com/2010/12/27/canonical-redirect-pitfalls-with-http-strict-transport-security-and-some-sutions/
http://dev.chromium.org/sts
sumber