Apa itu Header Keamanan HTTP dan Bagaimana Anda Menggunakannya?

Apa itu Header Keamanan HTTP dan Bagaimana Anda Menggunakannya?
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.





GUNAKAN VIDEO HARI 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:



Strict-Transport-Security: 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 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 web.config IIS:

<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 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?

  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 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.

tombol kiri mouse tidak berfungsi windows 10

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:

apakah ps5 datang dengan headset?
  • 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 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 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-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 untuk mengakses file PDF atau file PNG, browser yang melakukan analisis pada respons HTTP akan menyimpulkan jenis file tersebut.

perangkat ini tidak dapat dimulai. (kode 10) status daya perangkat saat ini tidak dapat mendukung permintaan ini.

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 always X-Content-Type-Options nosniff 

Tajuk 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 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.

  Penggunaan header HTTP untuk melindungi informasi rahasia di situs

Di situlah HttpOnly masuk. Di bawah ini adalah contoh bagaimana penugasan 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 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:

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

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.