Berbagi teknologi

Pertanyaan wawancara front-end 52 (Bisakah Anda menjelaskan kepada saya peran fungsi hash dalam keamanan front-end?)

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Masukkan deskripsi gambar di sini
Fungsi hash memainkan peran penting dalam keamanan front-end, terutama tercermin dalam aspek-aspek berikut:

1. Penyimpanan kata sandi

Saat pengguna membuat akun atau mengubah kata sandi di aplikasi front-end, sangat berbahaya jika langsung menyimpan kata sandi teks biasa. Sebaliknya, ujung depan menggunakan fungsi hash (seperti SHA-256 atau SHA-512) untuk mengubah kata sandi menjadi nilai hash dengan panjang tetap, dan kemudian mengirimkan nilai hash ke ujung belakang untuk disimpan. Dengan cara ini, meskipun database bocor, akan sulit bagi penyerang untuk membalikkan kata sandi asli dari nilai hash.

2. Pemeriksaan integritas data

Fungsi hash dapat digunakan untuk memastikan bahwa data tidak dirusak selama transmisi. Front end dapat menghitung hash dari data yang akan dikirim dan mengirimkannya beserta datanya. Setelah backend menerima data, ia menghitung kembali nilai hash dan membandingkannya dengan nilai hash yang dikirim oleh front end. Jika keduanya cocok, data tidak diubah selama transmisi.

3. Mencegah serangan ulangan

Dalam beberapa permintaan yang memerlukan otentikasi, frontend dapat menghasilkan string acak (disebut nonce) dan mengirimkannya bersama dengan permintaan pengguna. Nonce ini di-hash dan disimpan di backend. Jika nanti ada permintaan berulang, backend dapat memeriksa apakah nonce telah digunakan untuk mencegah serangan replay.

4. Verifikasi file dan sumber daya

Frontend dapat menggunakan fungsi hash untuk memverifikasi integritas file atau sumber daya yang diunduh dari server. Misalnya, dengan menggunakan fungsi Subresource Integrity (SRI), pengembang dapat menentukan nilai hash dalam tag HTML, dan browser akan secara otomatis menghitung nilai hash dan membandingkannya dengan nilai yang ditentukan saat memuat sumber daya untuk memastikan bahwa sumber daya tersebut tidak telah dirusak dengan jahat.

5. Filter mekar

Dalam beberapa kasus, front end mungkin menggunakan Filter Bloom untuk dengan cepat menentukan apakah suatu elemen ada dalam koleksi. Filter Bloom menggunakan beberapa fungsi hash yang berbeda untuk mengurangi tingkat positif palsu. Meskipun dapat menghasilkan positif palsu, filter ini tidak menghasilkan negatif palsu, yang sangat berguna saat memproses data dalam jumlah besar.

6. Firewall Aplikasi Web (WAF)

Fungsi hash juga digunakan di firewall aplikasi web untuk mendeteksi dan memblokir permintaan jahat. WAF dapat mempertahankan daftar hitam yang berisi hash dari pola permintaan berbahaya yang diketahui. Ketika permintaan baru diterima, WAF akan melakukan hash pada permintaan tersebut dan kemudian memeriksa apakah nilai hash ada dalam daftar hitam.

7. Lindungi Informasi Sensitif

Ketika berhadapan dengan informasi sensitif, seperti nomor kartu kredit atau informasi identitas pribadi, front end dapat menggunakan fungsi hash untuk membuat hash informasi dan kemudian menggunakan hash ini untuk perbandingan atau sebagai pengidentifikasi, daripada menggunakan data mentah secara langsung. . , sehingga meningkatkan keamanan.

Kesimpulannya

Fungsi hash meningkatkan keamanan aplikasi front-end dengan menyediakan metode keluaran satu arah dan tetap, terutama ketika berhubungan dengan otentikasi pengguna, integritas data, dan perlindungan privasi. Namun, penting untuk dicatat bahwa meskipun fungsi hash memberikan keamanan yang kuat, fungsi tersebut tidak selalu aman, terutama untuk penyimpanan kata sandi, dan paling baik digunakan bersama dengan garam untuk lebih meningkatkan kesulitan peretasan.