Meletakkan prototaip di belakang VPN terasa peribadi, jadi satu-satunya soalan yang tinggal kelihatan seperti siapa yang mendapat profil itu. Andaian itu gagal dengan cara tertentu: terowong mengawal siapa yang boleh mencapai hos, bukan apa yang hos dedahkan sebaik mereka tiba. Pratonton masih menjalankan runtime, menyimpan data dan memanggil integrasi yang boleh menghantar e-mel sebenar atau menulis ke pangkalan data sebenar. Anggap VPN sebagai pintu depan dan kemudian reka bilik di belakangnya.

Laluan bukan audiens

Mendaftarkan penguji ke VPN menjawab tepat satu soalan: bolehkah peranti ini mencapai alamat itu? Ia tidak mengatakan apa-apa tentang halaman, API atau konsol yang boleh digunakan oleh peranti itu. Itu kebenaran berasingan, dan gerbang yang hanya tahu alamat tidak boleh menguatkuasakannya.

Tulis kontrak pratonton sebagai senarai pendek: nama hos, pendengar, operasi yang dibenarkan dan siapa memegang setiap peranan. Kemudian semak sama ada senarai itu sepadan dengan apa yang benar-benar terdedah.

Penguji yang boleh membuka prototaip tidak memerlukan konsol penempatan, halaman admin pangkalan data atau direktori rumah pembangun. Jika gerbang memberikan laluan subnet, semuanya boleh dicapai secara lalai. Utamakan laluan bagi setiap destinasi, atau letakkan perkhidmatan tambahan di belakang pengesahan mereka sendiri. Mana-mana pilihan menyempitkan apa yang boleh dilakukan oleh profil yang dicuri.

Runtime yang anda kongsi ialah sebahagian daripada kontrak

Pelayan pembangunan dengan penyahpepijat dan muat semula automatik ialah alat untuk seorang pada satu mesin. Dokumentasi rangka kerja jelas tentang ini: panduan penempatan Flask menyatakan pelayan pembangunan dan penyahpepijatnya bukan untuk pengeluaran, dan ia juga mengira perkhidmatan peribadi atau pengguna tunggal sebagai pengeluaran. Penaakulan yang sama terpakai kepada mana-mana rangka kerja dengan pemuat semula dan halaman ralat interaktif. Ciri kemudahan direka untuk memendekkan gelung antara menyimpan fail dan melihat perubahan, bukan untuk berhadapan dengan penguji yang anda tidak kawal.

Jejak interaktif ialah kebocoran maklumat dan, dalam sesetengah penyahpepijat, permukaan pelaksanaan kod. Jauhkan ia daripada pratonton, atau hadkan pratonton kepada binaan yang tidak boleh mengaktifkannya. Jika penguji memerlukan diagnostik, beri mereka log dan bukannya konsol.

Pendengar kad bebas ialah separuh lagi daripada kesilapan ini. Mengikat pada setiap antara muka mendedahkan perkhidmatan pada rangkaian yang anda tidak maksudkan, termasuk Wi-Fi kedai kopi.

Gunakan akaun sekali guna dan data tanpa kesan sampingan sebenar

Gunakan akaun yang dibuat untuk ujian dan data yang tidak boleh memalukan sesiapa. Bahagian berbahaya jarang baris pangkalan data; ia ialah integrasi di sebalik butang. E-mel, pembayaran, SMS, webhook dan eksport fail semuanya sampai ke luar pratonton.

Senaraikan setiap kesan keluar yang boleh dicetuskan oleh prototaip, kemudian halakan setiap satu ke kotak pasir atau nyahdayakannya. Laluan peribadi tidak menjadikan titik akhir pembayaran langsung tidak berbahaya.

Kelayakan pengeluaran ialah masalah yang sama dalam bentuk lain. Pratonton yang mewarisi kunci API pengeluaran untuk menjimatkan masa persediaan ialah sistem pengeluaran dengan UI nyahpepijat. Cipta kelayakan berskop dengan kebenaran berguna terkecil. Putarkannya apabila pratonton tamat, kerana pratonton yang dibatalkan dengan kunci aktif masih hidup.

Semak halaman, aset dan soket

Halaman yang dipaparkan bukan pratonton yang berfungsi. HTML boleh dimuatkan sementara hos aset, API atau WebSocket masih menghala ke URL yang tidak boleh dicapai oleh penguji. Setiap satu ialah entri berasingan dalam kontrak.

Daripada peranti yang diluluskan, minta halaman dan aset terbesar secara berasingan:

curl -sS -o /dev/null -w "%{http_code}" https://preview.staging.example/
curl -sS -o /dev/null -w "%{http_code}" https://preview.staging.example/assets/app.js

Kemudian perhatikan konsol pelayar semasa interaksi sebenar dan sahkan bahawa soket muat semula langsung bersambung. Jika tidak, pembetulannya ialah laluan yang disengajakan untuk titik akhir itu, bukan peraturan yang melebar sehingga halaman kelihatan lengkap.

Bersarakan pratonton pada tarikh, bukan pada ingatan

Beri pratonton pemilik dan tarikh tamat pada saat anda menciptanya. Apabila tarikh tiba, buang entri, identiti penguji dan kelayakan sementara melalui konfigurasi yang memilikinya. Pratonton yang terlupa ialah cara prototaip peribadi menjadi awam secara kekal.

Sahkan persaraan dari luar: nama hos sepatutnya berhenti diselesaikan atau berhenti menjawab klien yang tidak diluluskan.

Simpan sumber dan nota pemulihan, tetapi bukan laluan sandaran. Ujian sempadan pratonton yang baik membosankan: peranti yang diluluskan boleh melakukan tindakan yang diperlukan, dan identiti yang tidak diluluskan tidak boleh. Perkara yang sama mesti berlaku selepas terowong dimatikan. Hasil itu lebih bernilai daripada ikon VPN di sebelah prototaip yang berjalan dengan semua ciri pembangunan diaktifkan.

Artikel berkaitan