Pembaca seperti Anda membantu mendukung MUO. Saat Anda melakukan pembelian menggunakan tautan di situs kami, kami dapat memperoleh komisi afiliasi.
Saat Anda ingin mengunjungi sebuah situs web, browser internet yang Anda gunakan menerima beberapa data dari situs tersebut. Akibatnya, terjadi dialog antara perangkat Anda dan situs web. Ini terjadi dengan protokol yang disebut HTTP. Dimungkinkan untuk mengambil beberapa tindakan keamanan tambahan dengan campur tangan dalam dialog ini.
Jika Anda menjalankan situs web atau ingin berkarir sebagai pengembang web, tajuk keamanan HTTP sangat berharga bagi Anda, karena mereka memainkan peran aktif dalam keamanan pengguna dan situs web.
Apa itu HTTP Strict-Transport-Security (HSTS)?
Keamanan Transportasi Ketat HTTP (HSTS) memaksa pengguna untuk menggunakan HTTPS untuk setiap permintaan yang mereka buat di browser mereka. Ini adalah cara yang solid untuk memerangi serangan dunia maya seperti penurunan versi dan untuk memastikan keamanan semua lalu lintas.
Mengaktifkan HSTS cukup mudah. Pertimbangkan dialog antara klien dan server. Saat Anda mencoba mengakses situs melalui browser, Anda adalah kliennya. Situs yang ingin Anda buka bergantung pada server. Tujuan Anda adalah memberi tahu server, "Saya ingin membuka situs ini". Ini adalah operasi permintaan. Server, sebaliknya, mengarahkan Anda ke situs jika Anda memenuhi persyaratan yang diinginkan.
Ingatlah hal ini sehubungan dengan contoh bendera HTTP Header ini:
Ketat-Transportasi-Keamanan: max-age=16070200;
Saat Anda menambahkan flag ini ke informasi header respons HTTP, semua permintaan yang dibuat pengguna akan menjadi HTTPS. Apa pun yang ditulis pengguna di sini, browser akan secara otomatis mengevaluasi protokol sebagai HTTPS dan membuat koneksi yang aman.
Cara Menggunakan HSTS
Alih-alih menambahkan semua informasi header HTTP ini di lapisan kode, Anda dapat melakukannya di Apache, IIS, Nginx, Tomcat, dan aplikasi server web lainnya.
Untuk mengaktifkan HSTS di Apache:
LoadModule headers_module modules/mod_headers.so
<VirtualHost *:443>
Header selalu mengaturKetat-Mengangkut-Keamanan "max-usia = 2592000; sertakan SubDomain"
</VirtualHost>
Untuk mengaktifkan HSTS di Nginx:
add_header Ketat-Transportasi-Keamanan max-age=2592000; sertakan Subdomain
Untuk mengaktifkan HSTS dengan web.config IIS:
<sistem.webserver>
<httpProtokol>
<customHeaders>
<tambah nama="Ketat-Transportasi-Keamanan" nilai="usia maks=63072000"/>
</customHeaders>
</httpProtocol>
</system.webServer>
Untuk Pengguna Cloudflare
Cloudflare menyediakan layanan HTTPS gratis untuk semua orang dengan layanan Keyless SSL; sebelum mengajukan pramuat HSTS, Anda harus tahu bahwa sertifikat Anda bukan milik Anda. Banyak situs menggunakan sertifikat SSL karena mereka adalah cara sederhana untuk menjaga keamanan data.
Namun, Cloudflare sekarang mendukung fitur HSTS. Anda dapat mengaktifkan semua fitur HSTS, termasuk preload, melalui antarmuka web Cloudflare tanpa berkutat dengan konfigurasi di server web.
Apa itu X-Frame-Options?
X-Frame-Options adalah header keamanan yang didukung oleh semua browser modern. X-Frame-Options bertujuan untuk melindungi dari pencurian klik seperti Clickjacking. Seperti namanya, ini tentang cara kerja bingkai inline yang rentan, juga dikenal sebagai iframe. Ini adalah elemen di situs yang menyematkan laman HTML lain di dalam situs "induk", sehingga Anda dapat menggunakan konten dari sumber lain di situs Anda. Tetapi penyerang menggunakan iframe di bawah kendali mereka sendiri untuk membuat pengguna melakukan tindakan yang tidak mereka inginkan.
Untuk alasan ini, Anda perlu mencegah penyerang menemukan iframe di situs.
Dimana dan Bagaimana Menggunakan X-Frame-Options?
Apa yang X-Frame-Options lakukan, beberapa pengembang coba lakukan dengan bahasa seperti JavaScript. Ini tidak sepenuhnya salah. Namun, masih ada risiko karena kode yang ditulis dalam banyak aspek tidak cukup. Jadi sebaiknya serahkan tugas ini ke browser internet yang Anda gunakan.
Namun, sebagai pengembang, ada tiga parameter yang perlu diketahui tentang X-Frame-Options:
- Membantah: Sepenuhnya mencegah halaman dipanggil dalam iframe apa pun.
- SAMA ASAL: Mencegah domain apa pun selain milik Anda agar tidak menelepon dalam iframe.
- IZINKAN-DARI uri: Terima panggilan iframe dari URI yang diberikan sebagai parameter. Blokir orang lain.
Di sini, SAMA ASAL fitur lebih menonjol. Karena meskipun Anda dapat memanggil aplikasi di subdomain yang berbeda dengan iframe di dalam satu sama lain, Anda dapat mencegahnya dipanggil melalui domain di bawah kendali penyerang.
Berikut adalah contoh bagaimana Anda dapat menggunakan SAMEORIGIN dan X-Frame-Options dengan NGINX, Apache, dan IIS:
Menggunakan X-Frame-Options SAMAORIGIN untuk Nginx:
add_header X-Frame-Options SAMAORIGIN;
Menggunakan X-Frame-Options SAMAORIGIN untuk Apache:
Header selalu menambahkan X-Frame-Options SAMAORIGIN
Menggunakan X-Frame-Options SAMAORIGIN untuk IIS:
<httpProtokol>
<customHeaders>
<tambah nama="X-Bingkai-Opsi" nilai="SAMA ASAL" />
</customHeaders>
</httpProtocol>
Cukup menambahkan header SAMEORIGIN saja akan memberikan keamanan yang lebih besar bagi pengunjung Anda.
Apa itu Perlindungan-X-XSS?
Menggunakan informasi header X-XSS-Protection dapat melindungi pengguna dari serangan XSS. Pertama, Anda perlu menghilangkan kerentanan XSS di sisi aplikasi. Setelah memberikan keamanan berbasis kode, tindakan lebih lanjut, yaitu header X-XSS-Protection, diperlukan terhadap kerentanan XSS di browser.
Cara Menggunakan X-XSS-Protection
Browser modern dapat mendeteksi muatan XSS potensial dengan memfilter konten yang dihasilkan aplikasi. Dimungkinkan untuk mengaktifkan fitur ini dengan informasi header X-XSS-Protection.
Untuk mengaktifkan header X-XSS-Protection di Nginx:
add_header X-Frame-X-XSS-Perlindungan 1;
Untuk mengaktifkan header X-XSS-Protection di Apache:
Header selalu menambahkan X-XSS-Protection 1
Untuk mengaktifkan header X-XSS-Protection di IIS:
<httpProtokol>
<customHeaders>
<tambah nama="X-XSS-Perlindungan" nilai="1" />
</customHeaders>
</httpProtocol>
Untuk mencegah blok kode dengan serangan XSS secara default berjalan, Anda dapat menggunakan sesuatu seperti ini:
X-XSS-Perlindungan: 1; modus = blok
Perubahan kecil ini perlu dilakukan jika ada situasi yang berpotensi berbahaya dan Anda ingin mencegah semua konten dirender.
Apa Itu X-Content-Type-Options?
Browser melakukan analisis yang disebut MIME Type Sniffing pada konten yang disajikan kepada mereka oleh aplikasi web. Misalnya, jika ada permintaan untuk mengakses file PDF atau file PNG, browser yang melakukan analisis pada respons HTTP akan menyimpulkan jenis file tersebut.
Pertimbangkan file dengan ekstensi jpeg tetapi sebenarnya memiliki konten Teks/HTML. Setelah menggunakan ekstensi dan melewati perlindungan di modul unggahan, file berhasil diunggah. File yang diunggah dipanggil melalui URL dan pengendapan Jenis MIME mengembalikan Teks/HTML sebagai hasilnya. Itu merender konten sebagai HTML. Saat itulah kerentanan XSS terjadi.
Jadi, Anda perlu mencegah browser memutuskan konten dengan mengendus Tipe MIME. Untuk melakukan ini, Anda dapat menggunakan nosniff.
Tajuk X-Content-Type-Options untuk Nginx:
add_header X-Content-Type-Options nosniff;
Tajuk X-Content-Type-Options untuk Apache:
Header selalu X-Content-Type-Options nosniff
Tajuk X-Content-Type-Options untuk IIS:
<httpProtokol>
<customHeaders>
<tambah nama="X-Content-Type-Options" nilai="mengendus" />
</customHeaders>
</httpProtocol>
Apa itu Bendera Cookie HttpOnly?
Aplikasi web melacak sesi pengguna melalui ID sesi. Browser akan menyimpan ini dan secara otomatis menambahkannya ke setiap permintaan HTTP dalam lingkup cookie.
Itu mungkin untuk menggunakan cookie untuk tujuan selain transfer kunci sesi, namun. Peretas dapat menemukan data pengguna menggunakan kerentanan XSS yang disebutkan di atas atau melalui serangan Cross-Site Request Forgery (CSRF). Jadi cookie mana yang paling penting dalam hal keamanan?
Anda dapat mempertimbangkan informasi yang terkandung dalam gambar terakhir yang Anda klik di galeri gambar sebagai contoh. Dengan cara ini, lalu lintas HTTP lebih sedikit dan sebagian beban dapat diselesaikan oleh browser internet pengguna dengan skrip sisi klien.
Di situlah HttpOnly masuk. Di bawah ini adalah contoh bagaimana penugasan cookie seharusnya:
Mengatur-Kue kering: pengguna=t=cdabe8a1c2153d726; jalur=/; HttpOnly
Perhatikan nilai HttpOnly yang dikirim dalam Set-Cookie operasi. Browser akan melihat ini dan tidak akan memproses nilai dengan flag HttpOnly saat cookie diakses melalui dokumen.cookie variabel. Bendera lain yang digunakan dalam proses Set-Cookie adalah bendera Aman. Ini menunjukkan bahwa nilai cookie akan ditambahkan ke header hanya untuk permintaan HTTPS. Situs e-commerce biasanya menggunakannya karena ingin mengurangi lalu lintas jaringan dan meningkatkan performa.
Dengan menggunakan metode ini, Anda dapat menyembunyikan data penting pengguna seperti nama pengguna, kata sandi, dan informasi kartu kredit. Tapi ada masalah. Pengguna yang menyelesaikan proses login diberi nilai cookie tanpa flag Secure. Pengguna dapat memiliki kunci sesi saat mereka membuat permintaan HTTP ke tautan non-HTTPS. Menambahkan bendera aman itu mudah:
Mengatur-Kue kering: pengguna=t=cdabe8a1c2153d726; jalur=/; Aman
Kapan sebaiknya Anda tidak menggunakan HttpOnly? Jika Anda mengandalkan Javascript, Anda harus berhati-hati karena hal ini dapat membuat situs Anda kurang aman.
Langkah Kecil Bekerja untuk Keamanan Web yang Lebih Luas
Anda tidak memerlukan perangkat lunak canggih dan pengetahuan server untuk meningkatkan keamanan aplikasi web. Dengan mengubah beberapa baris saja, Anda dapat mencegah beberapa serangan serius. Tentu saja, ini tidak cukup. Namun, ini adalah langkah kecil namun efektif untuk keamanan situs web. Pengetahuan adalah pencegahan terbaik, jadi mengetahui nuansa halus tentang bagaimana HTTPS melindungi data selama transfer juga berguna.