PII: Data Pribadi Bukan Cuma KTP, Bro.
2025-05-13
uu-pdp-for-developerJadi ceritanya si be-dev lagi bikin endpoint /register
.
Karena pengen gampang debug, dia log semua isi body request ke file:
JSON
{
"email": "user@example.com",
"nik": "3271xxxxxxx",
"alamat": "Jl. Rahasia No. 69",
"ip": "103.xxx.xxx.xxx"
}
βTenang aja, ini mah cuma di dev environment, kok.β
Tiga minggu kemudian, log itu ikut masuk backup ke cloud.
Dan... ngambang tanpa enkripsi.
Lalu... bocor.
Dan... ya, kalian bisa tebak sendiri sisanya.
Banyak developer mikir data pribadi itu cuma KTP atau foto selfie. Padahal... IP Address aja bisa bikin lo kena pasal.
PII = Personally Identifiable Information
Alias: semua data yang bisa dipakai buat ngenalin, ngelacak, atau ngebedain seseorang dari yang lain.
Tapi versi UU PDP, PII itu disebut sebagai Data Pribadi, dan dibagi jadi dua:
Kalau lo nyentuh data itu β apalagi nyimpan β ya lo harus comply.
Dan ini bukan teori doang. UU PDP di Pasal 1 & 2 udah jelasin secara eksplisit apa aja yang masuk kategori data pribadi.
Jenis Data | Kenapa Termasuk PII? |
---|---|
Nama Lengkap | Ya jelas lah. Nama kamu bukan lorem ipsum. |
Sumber spam, phish, dan data breach langganan. | |
Nomor Telepon | Dari OTP sampe dihubungi sales, semua lewat sini. |
Alamat Rumah | Privacy gone kalau ini bocor. Apalagi kalau lengkap sama RT/RW. |
Tanggal Lahir | Bisa dipakai untuk verifikasi akun atau reset password. |
Tempat Lahir | Biasa dipakai bareng tanggal lahir untuk validasi identitas. |
NIK | The ultimate PII. Bocor = chaos. |
Nomor Paspor | Data sensitif internasional. Kena denda bisa global. |
Nomor Rekening / Kartu Kredit | Finansial data = ultra sensitif. Bocor bisa langsung kebobolan. |
IP Address | Sering diremehkan. Padahal bisa identifikasi aktivitas dan lokasi user. |
Lokasi / GPS | Kalau kamu tau posisi orang realtime... ya itu PII banget lah. |
Riwayat Transaksi | Pattern belanja = behavior user. Bisa disalahgunakan. |
Foto Selfie / KTP | PII + biometrik = double kill kalau bocor. |
Metadata File (Exif/GPS) | Kadang kita upload file, tapi metadata-nya gak kita sadari ikut kebawa. |
(dan banyak lagi) | Pokoknya... kalau kamu ngerasa itu data pribadi user, yaaa itu PII. |
PII itu gak selalu yang kelihatan wah.
Tapi bisa aja hal kecil β kayak IP address atau log lokasi β yang ternyata bikin kantor lo kena denda.
Sebagian besar developer gak sadar kalau data yang dia sentuh itu tergolong PII. Apalagi kalau udah ngelog, ngebackup, atau nge-commit data mentah.
Masalahnya bukan niat jahat. Tapi karena banyak yang nganggep: βIni mah cuma testing, bro.β
1. Log Semua Data Request
console.log(req.body)
β padahal isinya: email, IP, lokasi, bahkan token.
Log itu:
Kalau bocor? Selamat datang surat cinta dari βyang berwenangβ.
2. Nyimpan Email & No HP Tanpa Masking
Disimpan plain, ditampilin langsung ke frontend β bahkan di autocomplete field.
Data ini kelihatannya sepele, padahal jadi entry point phishing. Kalau bocor, bisa langsung dicocokkan dengan aktivitas user lain.
3. Gak Ngeh Metadata File Ikut Terbawa
User upload selfie β tapi metadata GPS ikut ke-upload juga.
Exif metadata bisa nunjukin lokasi, device, bahkan timestamp. Dan ya... itu semua bisa dipakai untuk ngelacak user.
4. Simpen Alamat Rumah Tanpa Enkripsi
βKan cuma buat kirim hadiah giveaway.β
Padahal alamat lengkap termasuk PII spesifik. Dan kalau sistem gak pakai enkripsi? Semua orang di internal bisa akses data itu.
5. IP Address Terekam di Semua Request
βYa iyalah kan log-nya default.β
Masalahnya:
Gak semua kesalahan harus kelihatan besar. Tapi cukup satu baris log yang bocor, dan lo bisa duduk manis di ruang audit.
Tau salahnya doang gak cukup. Yang penting: gimana cara benerinnya.
Ini dia langkah-langkah yang bisa kamu lakuin mulai hari ini:
β Jangan Log Sembarangan
Kenapa penting? Karena log itu sering dibaca banyak sistem β dan kadang manusia juga. Bocor sedikit, bisa panjang urusannya.
β Simpan PII dengan Enkripsi
Jangan anggap data internal = aman. Kalau ada yang nyolong backup, selesai sudah.
β Validasi Akses di Backend
Ingat: data PII = data sensitif. Yang bisa lihat cuma yang punya alasan jelas.
β Gunakan ENV, Jangan Hardcoded
.env
ke repoHardcoded secret itu kayak nyimpen kunci rumah di depan pagar. Ya silakan kalau pengen dijemput UU PDP.
β Masking & Truncating Saat Share Data
anhar****@mail.com
3271******0012
Semua data bisa keliatan "aman" sampai seseorang salah pake.
β Gunakan Signed URL untuk Akses File
Compliance bukan soal gak boleh ngoding. Tapi soal tau batasan, dan bikin sistem yang aman dari awal.
Pasal / Standar | Relevansi |
---|---|
Pasal 1 & 2 UU PDP | Menjelaskan jenis data pribadi (umum & spesifik) termasuk IP, email, lokasi, dsb. |
Pasal 35 UU PDP | Pengendali data wajib menjaga keamanan & kerahasiaan data pribadi. |
Pasal 15 UU PDP | Pengumpulan data pribadi hanya boleh dilakukan atas dasar persetujuan. |
Pasal 57 UU PDP | Pelanggaran atas perlindungan data bisa kena pidana dan/atau denda administratif. |
OWASP A09:2021 | Security Logging & Monitoring Failures β log yang salah bisa jadi sumber bocor PII. |
ISO 27001 A.10 | Persyaratan perlindungan kriptografi terhadap data penting termasuk PII. |
NIST SP 800-53 AC-3 | Wajib ada kontrol akses terhadap data penting dan personal. |
Checklist ini bukan pengganti pasal hukum. Tapi bisa bantu kamu hindari kesalahan umum yang sering bikin audit berantakan.
Checklist | Kenapa Ini Penting? |
---|---|
β Jangan log data sensitif (PII, token, password) | Log bisa dibaca sistem lain, masuk backup, dan kadang nyebar ke mana-mana. |
β Enkripsi data saat disimpan | Kalau bocor, data tetap aman karena gak kebaca langsung. |
β Gunakan ENV untuk semua secret | Hardcoded secret di repo = undangan terbuka buat bocor. |
β Tambahkan & validasi consent checkbox | Pengumpulan data tanpa consent = pelanggaran Pasal 15. |
β Validasi semua akses di backend | Frontend doang gak cukup. Bisa di-bypass pake Postman. |
β Jangan share data production sembarangan | Begitu keluar sistem, udah gak bisa dikontrol lagi. |
β Simpan jejak *consent* dan akses data | Berguna banget saat audit atau user minta bukti. |
β Audit log, akses, dan backup secara berkala | Kadang yang bikin masalah bukan fitur, tapi yang ngendap di belakang. |
Kalau semua checklist ini kamu pegang waktu ngoding, 80% masalah compliance bisa dihindari bahkan sebelum security dateng review.
Checklist ini bukan pengganti pasal hukum. Tapi bisa bantu kamu hindari kesalahan umum yang sering bikin audit berantakan.
Checklist | Kenapa Ini Penting? |
---|---|
β Jangan log data sensitif (PII, token, password) | Log bisa dibaca sistem lain, masuk backup, dan kadang nyebar ke mana-mana. |
β Enkripsi data saat disimpan | Kalau bocor, data tetap aman karena gak kebaca langsung. |
β Gunakan ENV untuk semua secret | Hardcoded secret di repo = undangan terbuka buat bocor. |
β Tambahkan & validasi consent checkbox | Pengumpulan data tanpa consent = pelanggaran Pasal 15. |
β Validasi semua akses di backend | Frontend doang gak cukup. Bisa di-bypass pake Postman. |
β Jangan share data production sembarangan | Begitu keluar sistem, udah gak bisa dikontrol lagi. |
β Simpan jejak *consent* dan akses data | Berguna banget saat audit atau user minta bukti. |
β Audit log, akses, dan backup secara berkala | Kadang yang bikin masalah bukan fitur, tapi yang ngendap di belakang. |
β (dan masih banyak lagi...) | Pokoknya, kalau itu data pribadi β anggap aja PII dan lindungi. |
Kalau semua checklist ini kamu pegang waktu ngoding, 80% masalah compliance bisa dihindari bahkan sebelum security dateng review.
Kadang kita cuma mau debug.
Tapi baris log itu bisa nyeret kita ke meja audit.
Kadang kita cuma butuh email user.
Tapi lupa masking, lupa proteksi, lupa dapet consent.
Compliance itu bukan soal hafal pasal.
Tapi soal ngerti tanggung jawab kita waktu nyentuh data pribadi orang.
Karena pada akhirnyaβ¦
kode lo bisa jadi barang bukti β atau bukti bahwa lo peduli.
Konten Terkait :