Tentukan batas sebelum membangun layar
Dalam aplikasi pendakian hipotetis, pengguna mengetik offline maps lalu menekan Cari. Perangkat seharusnya mengirim maksud itu ke backend aplikasi, bukan menerima kredensial yang membayar pengambilan arsip. Bundel browser dapat diperiksa; aplikasi seluler yang dibagikan juga dapat mengungkap string tertanam atau header keluar. Nilai build yang terekspos tidak menjadi privat hanya karena disebut variabel lingkungan.
Menempatkan kunci pada backend mengubah pengetahuan yang diperlukan klien terdistribusi. Klien memerlukan kontrak permintaan aplikasi, seperti frasa pencarian dan komunitas yang diizinkan. Server memasok header autentikasi arsip. Arsitektur ini tetap memerlukan kontrol akses dan operasi yang cermat; memindahkan rahasia tidak otomatis mengamankan seluruh aplikasi.
Terima permintaan aplikasi yang kecil
Untuk versi awal, backend dapat menerima frasa dan nomor halaman sambil menetapkan sendiri subreddit=hiking dan limit=3. Validasi panjang dan rentang, serta izinkan hanya opsi yang benar-benar didukung aplikasi. Jangan menerima host arsip dari klien, DSL kueri sembarang, atau header autentikasi sembarang untuk diteruskan. Ini adalah usulan batas aplikasi, bukan endpoint tambahan yang diimplementasikan Reddit App API.
Gunakan X-API-Key atau Authorization: Bearer ketika backend memanggil arsip. Parameter tidak valid yang ditolak sebelum reservasi tidak memerlukan kredit; hasil kosong yang berhasil memerlukannya. Validasi membantu pengguna memperbaiki kesalahan dan membuat integrasi lebih dapat diperkirakan. Validasi tidak membuktikan cakupan arsip untuk tanggal tertentu atau bahwa pencarian valid akan menghasilkan rekaman berguna.
Pisahkan proses masuk akun
Cookie sesi Secure HttpOnly pada situs layanan memungkinkan operator mengelola akun dan invoice. Kunci API mengautentikasi pengambilan dari backend. Login pendaki ke aplikasi, jika dibuat, adalah hubungan lain. Jangan mengirim cookie akun layanan kepada pendaki atau menafsirkan 401 dari kunci sebagai bukti sesi aplikasi mereka telah kedaluwarsa.
Kunci API dan saldo akun bersifat khusus tenant, bukan dibagikan di seluruh jaringan domain. Simpan kredensial redditapp.com dengan label domain yang jelas. Kunci dari merek lain tidak menjadi valid hanya dengan mengganti URL tujuan. Kelayakan percobaan tingkat jaringan tidak menjadikan saldo akun yang terpisah sebagai satu kumpulan bersama.
Periksa log sebagai bagian dari batas rahasia
Saat memindahkan kunci API ke backend, perhatikan pula cara pencatatannya. Periksa jejak permintaan, laporan exception, dan integrasi observabilitas untuk header autentikasi yang ikut tersalin. Simpan diagnosis yang berguna tentang operasi dan status tanpa mencatat kunci asli, kata sandi akun, atau seluruh rahasia permintaan.
Kembalikan pesan yang dapat ditindaklanjuti pendaki. Galat kunci memerlukan perhatian operator, saldo rendah memerlukan keputusan akun, dan batas laju memerlukan pengendalian. Mengulangi 401 atau 402 terus-menerus tidak menyelesaikan penyebab. Jika respons permintaan hilang, catat ketidakpastian itu, bukan menganggap gagal gratis atau sukses terkonfirmasi.
Ganti kunci tanpa kehilangan jejak deployment
Pendaftaran menampilkan kunci lengkap satu kali sebelum pembayaran. Tampilan akun selanjutnya menunjukkan prefiks, bukan salinan yang dapat dipulihkan. Operator yang sudah masuk dapat mengonfirmasi kata sandi dan membuat ulang kunci; kunci lama langsung tidak berlaku. Siapkan daftar lingkungan backend yang memerlukan penggantian, lalu perbarui dengan sengaja. Tidak ada janji bahwa mengubah satu penyimpanan rahasia otomatis memperbarui setiap proses yang berjalan.
Simpan kata sandi dengan aman: layanan saat ini tidak memiliki alur reset kata sandi atau login Google. Setelah penggantian, kirim permintaan yang disengaja untuk memeriksa deployment yang diubah, dengan mengingat bahwa pengambilan berhasil dikenai biaya. Jaga pesan memuat dan galat tetap jujur selama perubahan. Lihat /id/#field-notes untuk catatan terkait desain status dan anggaran.