March 29, 2023


Saat Anda ingin mengunjungi sebuah situs web, browser internet yang Anda gunakan menerima beberapa data dari situs tersebut. Akibatnya, dialog terjadi antara perangkat Anda dan situs web. Ini terjadi dengan protokol yang disebut HTTP. Dimungkinkan untuk mengambil beberapa langkah keamanan tambahan dengan campur tangan dalam dialog ini.


Jika Anda menjalankan situs web atau bercita-cita untuk berkarir sebagai pengembang web, header keamanan HTTP sangat berharga bagi Anda, karena mereka berperan aktif dalam keamanan pengguna dan situs web.


Apa itu HTTP Strict-Transport-Security (HSTS)?

HTTP Strict Transport Security (HSTS) memaksa pengguna untuk menggunakan HTTPS untuk setiap permintaan yang mereka buat di browser mereka. Ini adalah cara yang solid untuk memerangi serangan siber 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 tergantung pada servernya. Tujuan Anda adalah memberi tahu server, “Saya ingin membuka situs ini”. Ini adalah operasi permintaan. Server, di sisi lain, mengarahkan Anda ke situs jika Anda memenuhi persyaratan yang diinginkan.

Ingatlah hal ini sehubungan dengan contoh flag HTTP Header ini:

Strict-Transport-Security: max-age=16070200;

Saat Anda menambahkan tanda 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 always set Strict-Transport-Security "max-age=2592000; includeSubDomains"
</VirtualHost>

Untuk mengaktifkan HSTS di Nginx:

add_header Strict-Transport-Security max-age=2592000; includeSubdomains

Untuk mengaktifkan HSTS dengan IIS web.config:

<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Strict-Transport-Security" value="max-age=63072000"/>
</customHeaders>
</httpProtocol>
</system.webServer>

Untuk Pengguna Cloudflare

Cloudflare menyediakan layanan HTTPS gratis untuk semua orang dengan layanan SSL Tanpa Kuncinya; sebelum mengajukan pramuat HSTS, Anda harus tahu bahwa sertifikat Anda bukan milik Anda. Banyak situs menggunakan sertifikat SSL karena ini 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 kesulitan dengan konfigurasi di server web.

Apa itu X-Frame-Options?

Meningkatkan keamanan situs web dengan header HTTP

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 kerja bingkai inline yang rentan, juga dikenal sebagai iframe. Ini adalah elemen di situs yang menyematkan halaman 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 agar tidak dapat menemukan iframe di situs.

Dimana dan Bagaimana Menggunakan X-Frame-Options?

Apa yang dilakukan X-Frame-Options, beberapa pengembang mencoba melakukannya dengan bahasa seperti JavaScript. Ini tidak sepenuhnya salah. Namun, masih ada risiko karena kode yang ditulis dalam banyak aspek tidak cukup. Jadi akan bijaksana untuk meninggalkan 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 di iframe apa pun.
  • ASAL YANG SAMA: Mencegah domain apa pun selain milik Anda agar tidak memanggil di dalam iframe.
  • ALLOW-FROM uri: Terima panggilan iframe dari URI yang diberikan sebagai parameter. Blokir orang lain.

Di sini, ASAL YANG SAMA 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 SAMEORIGIN;

Menggunakan X-Frame-Options SAMAORIGIN untuk Apache:

Header always append X-Frame-Options SAMEORIGIN

Menggunakan X-Frame-Options SAMAORIGIN untuk IIS:

<httpProtocol>
<customHeaders>
<add name="X-Frame-Options" value="SAMEORIGIN" />
</customHeaders>
</httpProtocol>

Cukup menambahkan header SAMAORIGIN saja akan memberikan keamanan yang lebih besar bagi pengunjung Anda.

Apa itu Proteksi 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 Proteksi X-XSS

Peramban modern dapat mendeteksi potensi muatan XSS 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-Protection 1;

Untuk mengaktifkan header X-XSS-Protection di Apache:

Header always append X-XSS-Protection 1

Untuk mengaktifkan header X-XSS-Protection di IIS:

<httpProtocol>
<customHeaders>
<add name="X-XSS-Protection" value="1" />
</customHeaders>
</httpProtocol>

Untuk mencegah blok kode dengan serangan XSS secara default berjalan, Anda dapat menggunakan sesuatu seperti ini:

X-XSS-Protection: 1; mode=block

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 akses ke file PDF atau file PNG, browser yang melakukan analisis pada respons HTTP menyimpulkan jenis file.

Pertimbangkan file dengan ekstensi jpeg tetapi sebenarnya memiliki konten Teks/HTML. Setelah menggunakan ekstensi dan melewati perlindungan di modul unggah, file berhasil diunggah. File yang diunggah dipanggil melalui URL dan sniffing Jenis MIME mengembalikan Teks/HTML sebagai hasilnya. Itu membuat konten sebagai HTML. Saat itulah kerentanan XSS terjadi.

Jadi, Anda perlu mencegah browser memutuskan konten dengan mengendus Jenis MIME. Untuk melakukan ini, Anda dapat menggunakan nosniff.

Header X-Content-Type-Options untuk Nginx:

add_header X-Content-Type-Options nosniff;

Header X-Content-Type-Options untuk Apache:

Header always X-Content-Type-Options nosniff

Header X-Content-Type-Options untuk IIS:

<httpProtocol>
<customHeaders>
<add name="X-Content-Type-Options" value="nosniff" />
</customHeaders>
</httpProtocol>

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 menggunakan cookie untuk tujuan selain transfer kunci sesi, namun. Peretas dapat mengetahui data pengguna menggunakan kerentanan XSS yang disebutkan di atas atau melalui serangan Pemalsuan Permintaan Lintas Situs (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 berkurang dan sebagian beban dapat diselesaikan oleh browser internet pengguna dengan skrip sisi klien.

Penggunaan header HTTP untuk melindungi informasi rahasia di situs

Di situlah Hanya Http masuk. Di bawah ini adalah contoh bagaimana penetapan cookie seharusnya:

Set-Cookie: user=t=cdabe8a1c2153d726; path=/; 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 document.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 kinerja.

Dengan menggunakan metode ini, Anda dapat menyembunyikan data penting pengguna seperti nama pengguna, sandi, dan informasi kartu kredit. Tapi ada masalah. Pengguna yang menyelesaikan proses login diberi nilai cookie tanpa tanda Aman. Pengguna dapat memiliki kunci sesi ketika mereka membuat permintaan HTTP ke tautan non-HTTPS. Menambahkan bendera aman itu mudah:

Set-Cookie: user=t=cdabe8a1c2153d726; path=/; Secure

Kapan Anda tidak boleh mengonsumsi HttpOnly? Jika Anda mengandalkan Javascript, Anda harus waspada karena 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 hanya beberapa baris, 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 juga berguna untuk mengetahui nuansa halus tentang cara HTTPS melindungi data selama transfer.

Leave a Reply

Your email address will not be published. Required fields are marked *