· 7 min read
Injeksi Formula CSV pada Daftar Telepon: Tinjau File dengan Aman
Proses dua salinan untuk meninjau data CSV telepon yang tidak tepercaya tanpa mengubah file unggahan sistem.
Injeksi formula CSV pada daftar nomor telepon merupakan risiko yang terjadi ketika teks sel yang tidak tepercaya dibuka dalam perangkat lunak spreadsheet dan ditafsirkan sebagai formula. Tinjau salinan yang terlindungi dan dapat dibaca manusia, sembari membuat salinan unggahan mesin terpisah yang hanya berisi teks nomor telepon yang dimaksud. Nomor internasional yang sah dapat diawali dengan tanda plus, sehingga jangan menghapus tanda tersebut secara membabi buta; verifikasi file unggahan akhir sebagai plain text sebelum melakukan pemeriksaan massal.
Mengapa CSV nomor telepon memerlukan dua tinjauan berbeda
CSV adalah file teks, tetapi spreadsheet dapat memperlakukan selnya lebih dari sekadar teks. OWASP CSV Injection guidance menjelaskan bahwa sel yang diawali dengan karakter seperti tanda sama dengan, tanda plus, tanda minus, atau tanda at (@) dapat ditafsirkan sebagai formula dalam beberapa konteks spreadsheet. Nilai berbahaya juga dapat menggunakan pemisah atau tanda kutip untuk menempatkan karakter berbahaya di awal sel baru. Hal tersebut membuat tindakan klik ganda biasa pada file ekspor yang tidak tepercaya menjadi metode inspeksi yang buruk.
Data nomor telepon menciptakan dilema tersendiri. Tanda plus adalah awalan normal untuk nomor internasional, namun tanda plus juga ada dalam daftar karakter pemicu formula menurut OWASP. Memperlakukan setiap nilai berawalan plus sebagai nilai berbahaya akan merusak nomor-nomor yang sah. Sebaliknya, memperlakukan setiap nilai tersebut sebagai aman hanya karena menyerupai nomor telepon akan mengabaikan perbedaan antara sel CSV mentah dan interpretasi tampilannya. Solusinya adalah memisahkan peninjauan manusia dari pengiriman mesin serta memvalidasi konten untuk masing-masing tujuan.
Ini adalah masalah penanganan file di sisi pelanggan. CheckNumber mendukung unggahan daftar massal dalam format CSV atau TXT, tetapi kapabilitas pemeriksaan yang terdokumentasi tidak mengklaim melindungi spreadsheet analis dari file sumber yang tidak tepercaya. Biarkan file ekspor sumber tetap tidak berubah dan lakukan peninjauan pada salinan yang terkontrol.
Membuat salinan tinjauan yang aman untuk manusia
Mulailah dengan menandai file sumber sebagai tidak tepercaya sampai asal dan isinya diperiksa. Gunakan alur kerja peninjauan yang memperlakukan bidang yang diimpor sebagai teks alih-alih mengizinkan interpretasi formula otomatis. Power Query Text/CSV documentation dari Microsoft menjelaskan bagaimana deteksi tipe data dapat dimatikan sehingga kolom secara default berupa teks. Metode peninjauan yang tepat harus diuji dengan versi spreadsheet dan jenis file yang digunakan tim; pengaturan tampilan bukanlah bukti bahwa penyimpanan berikutnya akan mempertahankan setiap karakter.
Untuk artefak peninjauan manusia, terapkan mitigasi khusus spreadsheet sesuai dengan panduan keamanan organisasi. OWASP mencatat bahwa beberapa pendekatan escaping dapat gagal setelah CSV disimpan dan dibuka kembali, serta mitigasi berbasis tab memiliki konsekuensi pertukaran data di tahap hilir. Inilah alasan mengapa artefak peninjauan tidak boleh digunakan kembali sebagai input alat pemeriksa. Prefiks pengaman atau karakter escape yang ditujukan untuk spreadsheet manusia dapat menjadi bagian dari data yang diproses oleh mesin.
Periksa bidang yang mencurigakan dan batas-batas sel. Baris yang berisi bidang telepon ditambah catatan acak, pemisah tertanam, atau karakter kontrol patut ditinjau secara manual. Sediakan baris asli untuk perbandingan, tetapi jangan meminta analis mengeksekusi atau mengabaikan peringatan dengan mengeklik hanya untuk melihatnya. Jika salinan peninjauan telah mengubah teks telepon yang terlihat, gunakan sistem sumber untuk memastikan nilai yang dimaksud.
Membangun salinan unggahan mesin terpisah dari nomor yang disetujui
Hasilkan input alat pemeriksa dari nilai-nilai yang telah lolos peninjauan sumber dan negara, bukan dari salinan peninjauan spreadsheet yang disimpan. Pertahankan pemetaan lokal dari setiap ID catatan sumber ke string telepon yang disetujui. Jika normalisasi diperlukan, pertahankan nilai asli dan nilai yang telah disiapkan. Fitur Number Cleaner gratis di dasbor CheckNumber dapat menormalisasi nomor ke E.164 serta menghapus entri duplikat dan tidak valid sebelum pemeriksaan berbayar, tetapi fitur ini tidak dapat merekonstruksi digit yang hilang dalam konversi spreadsheet sebelumnya.
Untuk unggahan daftar telepon, format yang terdokumentasi adalah satu negara per file dan satu nomor per baris dengan kode negara; tanda plus bersifat opsional. Ini berarti pelanggan dapat menggunakan nomor yang telah disiapkan dengan benar, baik dengan atau tanpa tanda awalan tersebut dalam format unggahan. Jangan menghapus tanda tersebut sebagai perbaikan umum untuk injeksi CSV, karena file unggahan dan file peninjauan manusia memiliki tujuan yang berbeda. Nomor ber-kode negara tetap harus diperiksa untuk digit sebenarnya, konteks negara, dan teks yang tidak diharapkan.
Gunakan inspeksi plain text pada file mesin akhir. Pastikan setiap baris hanya berisi nilai telepon yang dimaksud dalam format unggahan yang dipilih, tanpa prefiks mitigasi spreadsheet, tanpa teks formula, tanpa catatan tambahan, serta tanpa jeda baris atau pemisah yang tidak diinginkan. Bandingkan sampel baris dengan tabel kerja yang disetujui dan sumber yang tidak diubah. File yang terlihat benar di spreadsheet masih bisa mengandung bita mendasar yang telah berubah.
Menjaga keputusan peninjauan dan pengunggahan tetap dapat terlacak
Tabel peninjauan yang dikelola pelanggan secara efektif melacak ID catatan sumber, teks sel asli, string telepon yang disetujui, negara, alasan transformasi apa pun, dan apakah baris tersebut ditangguhkan. Ini adalah bidang lokal yang disarankan, bukan skema output produk yang dijanjikan. Baris yang tidak dapat diselesaikan harus dikecualikan dari unggahan, alih-alih dipaksakan menjadi nomor telepon yang tampak masuk akal.
Katalog produk CheckNumber membantu tim memilih pemeriksaan telepon yang sesuai dengan kebutuhan, seperti validitas terdokumentasi atau registrasi platform bernama. Proses keamanan CSV itu sendiri tidak menetapkan salah satu dari hasil tersebut. Unggahan dengan format yang baik hanya memberi alat pemeriksa input yang memang dimaksudkan. Untuk alur kerja API, gunakan dokumentasi API terkini untuk produk terdukung yang dipilih daripada menganggap aturan CSV sebagai skema API.
Setelah ekspor khusus alat pemeriksa tersedia, cocokkan hasil dengan pemetaan telepon yang disetujui lalu kembali ke ID catatan asli. Jangan mengandalkan urutan output. Jika beberapa kontak menggunakan satu nomor yang sama, pertahankan riwayat sumber dan izin mereka secara terpisah. Sinyal teknis pada saat pemeriksaan tidak boleh diubah menjadi bukti identitas atau persetujuan, terlepas dari seberapa hati-hati file CSV disiapkan.
Menguji proses dua salinan sebelum penggunaan rutin
Buat sampel data internal sintetis untuk nilai telepon ber-kode negara normal dengan awalan plus, nilai tanpa awalan plus, nilai rusak yang berisi teks tambahan, dan baris dengan pemisah atau tanda kutip di tempat yang tidak diharapkan. Ini adalah kasus uji peninjauan, bukan hasil pemeriksaan yang sebenarnya. Verifikasi bahwa proses peninjauan manusia tidak mengeksekusi formula spreadsheet dan file unggahan mesin hanya berisi teks telepon yang disetujui. Catatan sumber yang sama harus dapat dilacak di kedua salinan tanpa menyalin karakter escape khusus peninjauan ke dalam file unggahan.
Buka kembali salinan peninjauan dalam alur kerja spreadsheet tim yang sebenarnya dan periksa bagaimana teks yang mencurigakan ditangani. Kemudian periksa file mesin dengan pembaca berbasis teks dan bandingkan karakternya dengan nilai yang disetujui. Peringatan OWASP mengenai perilaku simpan-dan-buka-kembali menjadikan langkah kedua ini penting. Jika alur kerja tidak dapat mempertahankan atau membedakan salinan secara andal, ubah proses di sisi pelanggan sebelum memeriksa data kontak produksi.
Terakhir, rekonsiliasi baris sumber, pengecualian yang ditangguhkan, nomor yang disetujui, baris yang dikirimkan, dan hasil yang cocok. Selidiki setiap perbedaan yang tidak dapat dijelaskan. Tujuan praktisnya adalah peninjauan analis yang aman dan input alat pemeriksa yang bersih, masing-masing dibuat untuk kegunaannya sendiri. Baik karakter escape keamanan spreadsheet maupun pemeriksaan registrasi tidak dapat menggantikan keputusan kebijakan kontak dan persetujuan terpisah dari tim Anda.
FAQ
Bagaimana tim dapat meninjau CSV telepon yang tidak tepercaya tanpa eksekusi formula?
Gunakan salinan peninjauan manusia yang terkontrol yang mengimpor bidang sebagai teks dan menerapkan proses keamanan spreadsheet organisasi, lalu pisahkan dari file unggahan mesin.
Apakah tanda plus di awal harus dihapus dari setiap nomor telepon?
Tidak. Tanda tersebut dapat menjadi awalan internasional yang sah. Unggahan daftar telepon CheckNumber mengizinkan tanda plus ada atau tidak ada, tetapi nilai akhir harus ditinjau sebagai teks nomor telepon yang dimaksud.
Mengapa tidak mengunggah salinan peninjauan yang aman untuk spreadsheet?
Karakter escape atau awalan yang ditambahkan demi keamanan spreadsheet dapat tertinggal di dalam data mendasar. Buat file mesin terpisah dari nilai-nilai yang telah disetujui dan periksa sebagai plain text.
Apakah tinjauan keamanan CSV memvalidasi nomor atau persetujuan?
Tidak. Tinjauan ini melindungi langkah penanganan file lokal. Alat pemeriksa yang dipilih memberikan sinyal yang terdokumentasi, sementara persetujuan tetap menjadi keputusan pelanggan yang independen.