Siapa lagi yang ikut membaca? Skrip pihak ketiga di halaman formulir
Halaman formulir kontak sering memuat kode dari setengah lusin perusahaan lain. Sebagiannya dapat melihat apa yang diketik pengunjung – dan sebagian besar belum pernah ditinjau oleh siapa pun dalam tim Anda.
Ketika seseorang mengisi formulir kontak Anda, mereka menganggap pesannya dikirim kepada Anda. Namun, pada banyak situs, halaman formulir juga menjalankan skrip dari penyedia analitik, jaringan iklan, penyedia chat, dan apa pun yang telah dikumpulkan pengelola tag selama bertahun-tahun. Setiap skrip tersebut berjalan dengan hak yang sama seperti kode Anda sendiri: dapat membaca halaman, mengamati kolom input, dan mengirim data ke servernya sendiri. Itu tidak berarti semuanya melakukannya. Namun, pada halaman tempat pengunjung mengetik nama, alamat email, dan terkadang perincian tentang kesehatan, keuangan, atau masalah hukum mereka, Anda harus mengetahui siapa yang ikut membaca.
Pihak-pihak yang biasanya terlibat
- Alat perekaman sesi merekam klik, pengguliran, dan sering kali penekanan tombol agar kunjungan dapat diputar ulang kemudian. Jika kolom tidak disamarkan, rekaman tersebut dapat mencakup apa yang diketik orang ke dalam formulir.
- Piksel iklan dan analitik melaporkan tampilan halaman dan konversi kepada pihak ketiga – di halaman formulir itu sendiri dan sangat sering di halaman ucapan terima kasih.
- Widget chat memuat aplikasi lengkap dari domain lain, biasanya di setiap halaman, termasuk halaman yang berisi formulir.
- Pengelola tag memungkinkan tim pemasaran menambahkan skrip tanpa deployment. Praktis, tetapi ini juga berarti kode dapat masuk ke halaman formulir tanpa ditinjau siapa pun.
- Alat bantu yang lebih kecil – pengujian A/B, peta panas, sematan media sosial, font, peta – masing-masing menambahkan host yang menerima setidaknya alamat IP pengunjung dan biasanya alamat situs Anda; skrip di antaranya juga dapat membaca URL halaman lengkap.
Perekaman sesi: perekam di sebelah kolom input
Sebagian besar alat pemutaran ulang menyediakan pengaturan untuk menyamarkan kolom input atau mengecualikan seluruh area, dan beberapa menyamarkan kolom tertentu secara bawaan. Titik lemahnya adalah pengecualian: kolom pesan teks bebas yang tidak dicakup pengaturan bawaan, formulir yang dibangun dari komponen yang tidak dikenali aturan penyamaran, atau pengaturan yang dimatikan seseorang saat menelusuri kesalahan dan tidak pernah diaktifkan kembali. Rekaman yang disimpan oleh pihak ketiga kemudian dapat berisi persis apa yang ditulis pengunjung kepada Anda – sesuatu yang tidak mereka harapkan dan mungkin sama sekali tidak disebutkan oleh Kebijakan Privasi Anda, yang berdasarkan Pasal 13 GDPR harus menyebutkan penerima atau kategori penerima data pribadi.
Piksel dan halaman ucapan terima kasih
Pelacakan konversi memerlukan sinyal bahwa formulir telah dikirim, dan halaman ucapan terima kasih merupakan tempat yang jelas untuk memicunya. Sebagian besar piksel mengirim alamat halaman lengkap bersama setiap peristiwa. Jika formulir dikirim melalui GET, atau pengalihan setelah pengiriman menambahkan nilai seperti ?name=…&email=… ke URL, nilai tersebut langsung dikirim ke penyedia iklan atau analitik. Beberapa piksel juga menawarkan fitur yang secara otomatis mengambil alamat email atau nomor telepon dari formulir untuk meningkatkan pencocokan. Dan jika piksel dipicu sebelum pengunjung menjawab banner cookie – atau setelah mereka menolak – masalahnya tidak lagi hanya bersifat teknis.
Pengelola tag, persetujuan, dan rantai pasokan
Pengelola tag sering menjadi titik hilangnya gambaran menyeluruh. Tag kampanye untuk pameran dagang dua tahun lalu, uji coba alat peta panas, piksel untuk jaringan yang tidak lagi digunakan siapa pun – semuanya mungkin masih dimuat di setiap halaman, termasuk formulir. Pemicu sering diatur ke “semua halaman”, dan aturan persetujuan dikonfigurasi per tag, sehingga satu tag yang kehilangan suatu kondisi saja sudah cukup untuk memuat skrip sebelum pengunjung menyetujuinya.
Lalu ada rantai pasokan. Ketika Anda menyematkan skrip dari host lain, Anda mempercayai siapa pun yang mengendalikan host tersebut saat ini dan di masa depan. Penyedia dapat mengubah perilaku skripnya, dijual, atau mengalami pembobolan infrastruktur distribusinya. Browser tidak dapat membedakan skrip yang sah dari yang telah dimanipulasi, sehingga kode yang disisipkan di halaman formulir dapat membaca setiap kolom dan mengirimkannya ke mana saja – pola yang sama seperti yang digunakan untuk pencurian data pada halaman pembayaran.
Yang dapat Anda lakukan
- 1Buat inventaris. Buka setiap halaman formulir dan halaman ucapan terima kasihnya dengan alat pengembang browser, periksa tab Network, dan daftarkan setiap host eksternal. Lakukan sekali tanpa persetujuan dan sekali setelah menyetujui banner.
- 2Hapus yang tidak dibutuhkan siapa pun. Tag tanpa penanggung jawab dan tujuan yang jelas layak dihapus. Batasi pemicu pengelola tag agar hanya tag yang memang harus berjalan di halaman formulir yang dijalankan.
- 3Samarkan input dalam alat pemutaran ulang. Samarkan semua kolom input, bukan hanya kata sandi, dan kecualikan seluruh area formulir jika memungkinkan. Kemudian tonton rekaman untuk melihat apa yang sebenarnya disimpan.
- 4Kirim konversi tanpa data pribadi. Kirim melalui POST, jauhkan nilai formulir dari URL pengalihan, dan picu peristiwa netral seperti “contact_form_sent”. Matikan pengumpulan kolom formulir otomatis pada piksel.
- 5Muat hanya setelah persetujuan. Skrip yang memerlukan persetujuan tidak boleh dimuat sebelum pengunjung menyetujui – dan harus tetap nonaktif jika mereka menolak. Uji kedua alur tersebut.
- 6Kunci versi dan batasi jika memungkinkan. Subresource Integrity (hash pada tag skrip) membuat browser menolak berkas statis yang telah berubah; ini tidak cocok untuk skrip yang memang dirancang untuk berubah, seperti pengelola tag. Content Security Policy membatasi host yang boleh menjalankan skrip – mulailah dalam mode hanya laporan untuk melihat apa yang akan rusak.
- 7Pantau perubahan. Host skrip baru di halaman formulir harus merupakan keputusan yang disengaja, bukan kejutan. Pastikan Anda diberi tahu ketika host baru muncul.
formexposed memeriksa piksel pelacakan mana yang dipicu di halaman formulir Anda, apakah alat perekaman sesi mungkin merekam input formulir, dan apakah menolak banner cookie benar-benar menghentikan pelacakan – secara pasif, tanpa mengirim apa pun. Pemeriksaan gratis menunjukkan tingkat keseluruhan; temuan ini tersedia dalam laporan lengkap. Dengan pemantauan untuk domain terverifikasi, formexposed juga memberi tahu Anda ketika host skrip baru muncul di halaman formulir.