Tajuk Baharu: Melindungi Kunci API: Kaedah Tersembunyi dalam JavaScript Bahagian Klien
P粉521748211
2023-08-24 10:22:46
<p>Sekarang saya sedang menulis aplikasi JavaScript sisi pelanggan yang membuat permintaan kepada API Kalkulator Harga USPS. Untuk membuat permintaan ini, saya perlu memberikan ID pengguna API saya dalam XML yang diminta. Teg kelihatan seperti ini: <code><RateV4Request USERID="ThisIsWhereMyUserIdGoes"></code>. Soalan saya ialah: Adakah terdapat cara untuk memberikan ID pengguna saya dalam JavaScript semasa masih menyembunyikannya daripada pengguna yang melihat fail klien. Pada masa ini, satu-satunya penyelesaian saya ialah mencipta fail PHP pada pelayan saya yang mengandungi ID pengguna dan kemudian menggunakan permintaan AJAX dalam JavaScript klien untuk menyimpannya dalam pembolehubah global. Kodnya adalah seperti berikut: </p>
<pre class="brush:php;toolbar:false;">var userID;
$.get("/secrets.php", function( data ) {
ID pengguna = data;
});</pre>
<p>Adakah pendekatan ini mencukupi untuk menghalang ID pengguna API saya daripada dilihat oleh pengguna aplikasi saya? Adakah terdapat cara lain untuk melakukan ini? </p>
Jika anda membaca halaman ini pada tahun 2020 dan tidak mahu membangunkan kod sisi pelayan atas apa jua sebab (menjimatkan kos pengehosan, dll.), fungsi tanpa pelayan mungkin penyelesaiannya.
Ini juga memanggil API pihak ketiga dari bahagian pelayan, tetapi anda tidak perlu membangunkan proksi API bahagian pelayan penuh.
Netlify mempunyai dokumentasi yang berkaitan. Saya rasa penyedia lain seperti AWS Lambda, Google Cloud Function juga menawarkan fungsi yang serupa, tetapi tidak pasti.
https://github.com/netlify/code-examples/tree/master/function_examples/token-hider
Kelebihan Tidak perlu menguruskan pelayan
Keburukan Kunci masuk vendor
Ringkasnya: Tidak, anda tidak boleh melindungi kunci API anda dalam aplikasi klien.
Artikel ini memperincikan beberapa butiran
Dua pilihan: