PII: Data Pribadi Bukan Cuma KTP, Bro.

2025-05-13

uu-pdp-for-developer

🚨 Si be-dev dan Log Berbahaya

Ilustrasi be-dev nge-log semua PII

Jadi 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.

⚠️ Waspada, Lur!

Banyak developer mikir data pribadi itu cuma KTP atau foto selfie. Padahal... IP Address aja bisa bikin lo kena pasal.

πŸ“˜ Apa Itu PII & Kenapa Lo Harus Peduli

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:

  • Data Pribadi Umum β†’ nama, email, IP address, lokasi
  • Data Pribadi Spesifik β†’ NIK, biometrik, data kesehatan, rekam jejak keuangan

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 DataKenapa Termasuk PII?
Nama LengkapYa jelas lah. Nama kamu bukan lorem ipsum.
EmailSumber spam, phish, dan data breach langganan.
Nomor TeleponDari OTP sampe dihubungi sales, semua lewat sini.
Alamat RumahPrivacy gone kalau ini bocor. Apalagi kalau lengkap sama RT/RW.
Tanggal LahirBisa dipakai untuk verifikasi akun atau reset password.
Tempat LahirBiasa dipakai bareng tanggal lahir untuk validasi identitas.
NIKThe ultimate PII. Bocor = chaos.
Nomor PasporData sensitif internasional. Kena denda bisa global.
Nomor Rekening / Kartu KreditFinansial data = ultra sensitif. Bocor bisa langsung kebobolan.
IP AddressSering diremehkan. Padahal bisa identifikasi aktivitas dan lokasi user.
Lokasi / GPSKalau kamu tau posisi orang realtime... ya itu PII banget lah.
Riwayat TransaksiPattern belanja = behavior user. Bisa disalahgunakan.
Foto Selfie / KTPPII + 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.
ℹ️ Info Gaes!

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.

🧨 Problems: What & Why

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:

  • Sering masuk ke backup otomatis
  • Bisa dibaca banyak sistem lain
  • Jarang dibersihin

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:

  • IP address bisa jadi PII
  • Bisa identifikasi lokasi user
  • Bisa jadi pintu masuk profiling

❌ NGERI INI MAH!!!

Gak semua kesalahan harus kelihatan besar. Tapi cukup satu baris log yang bocor, dan lo bisa duduk manis di ruang audit.

πŸ›‘οΈ Secure Practices: How & Why

Tau salahnya doang gak cukup. Yang penting: gimana cara benerinnya.


Ini dia langkah-langkah yang bisa kamu lakuin mulai hari ini:


βœ… Jangan Log Sembarangan

  • Filter field sensitif: jangan log email, IP, NIK, GPS
  • Set log level sesuai: debug/info/error jangan disamain
  • Bersihkan log secara berkala (log rotation)

Kenapa penting? Karena log itu sering dibaca banyak sistem β€” dan kadang manusia juga. Bocor sedikit, bisa panjang urusannya.


βœ… Simpan PII dengan Enkripsi

  • Gunakan AES-256 minimal
  • Password disimpan pakai hash (bcrypt/argon2)
  • Backup juga harus terenkripsi, jangan cuma DB utama

Jangan anggap data internal = aman. Kalau ada yang nyolong backup, selesai sudah.


βœ… Validasi Akses di Backend

  • Jangan percaya frontend
  • Role check dan permission logic harus di backend
  • Audit access setiap periode tertentu

Ingat: data PII = data sensitif. Yang bisa lihat cuma yang punya alasan jelas.


βœ… Gunakan ENV, Jangan Hardcoded

  • Semua API key, token, dan secret β†’ simpan di environment variable
  • Jangan commit file .env ke repo
  • Audit ENV usage secara berkala

Hardcoded secret itu kayak nyimpen kunci rumah di depan pagar. Ya silakan kalau pengen dijemput UU PDP.


βœ… Masking & Truncating Saat Share Data

  • Kirim email? Mask sebagian: anhar****@mail.com
  • Tampilkan NIK? Truncate: 3271******0012
  • Share data ke pihak luar? Gunakan dummy kalau bisa

Semua data bisa keliatan "aman" sampai seseorang salah pake.


βœ… Gunakan Signed URL untuk Akses File

  • Batasi waktu akses (TTL)
  • Hindari direct public link
  • Tambahkan scope/kontrol (read-only, no-download, dll)

βœ… Mantap!

Compliance bukan soal gak boleh ngoding. Tapi soal tau batasan, dan bikin sistem yang aman dari awal.

πŸ“š Kaitan dengan UU PDP & Standar

Pasal / StandarRelevansi
Pasal 1 & 2 UU PDPMenjelaskan jenis data pribadi (umum & spesifik) termasuk IP, email, lokasi, dsb.
Pasal 35 UU PDPPengendali data wajib menjaga keamanan & kerahasiaan data pribadi.
Pasal 15 UU PDPPengumpulan data pribadi hanya boleh dilakukan atas dasar persetujuan.
Pasal 57 UU PDPPelanggaran atas perlindungan data bisa kena pidana dan/atau denda administratif.
OWASP A09:2021Security Logging & Monitoring Failures β€” log yang salah bisa jadi sumber bocor PII.
ISO 27001 A.10Persyaratan perlindungan kriptografi terhadap data penting termasuk PII.
NIST SP 800-53 AC-3Wajib ada kontrol akses terhadap data penting dan personal.

🧾 Developer Compliance Checklist

ℹ️ Info Gaes!

Checklist ini bukan pengganti pasal hukum. Tapi bisa bantu kamu hindari kesalahan umum yang sering bikin audit berantakan.

ChecklistKenapa 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 disimpanKalau bocor, data tetap aman karena gak kebaca langsung.
βœ” Gunakan ENV untuk semua secretHardcoded secret di repo = undangan terbuka buat bocor.
βœ” Tambahkan & validasi consent checkboxPengumpulan data tanpa consent = pelanggaran Pasal 15.
βœ” Validasi semua akses di backendFrontend doang gak cukup. Bisa di-bypass pake Postman.
βœ” Jangan share data production sembaranganBegitu keluar sistem, udah gak bisa dikontrol lagi.
βœ” Simpan jejak *consent* dan akses dataBerguna banget saat audit atau user minta bukti.
βœ” Audit log, akses, dan backup secara berkalaKadang yang bikin masalah bukan fitur, tapi yang ngendap di belakang.
βœ… Mantap!

Kalau semua checklist ini kamu pegang waktu ngoding, 80% masalah compliance bisa dihindari bahkan sebelum security dateng review.

🧾 Developer Compliance Checklist

ℹ️ Info Gaes!

Checklist ini bukan pengganti pasal hukum. Tapi bisa bantu kamu hindari kesalahan umum yang sering bikin audit berantakan.

ChecklistKenapa 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 disimpanKalau bocor, data tetap aman karena gak kebaca langsung.
βœ” Gunakan ENV untuk semua secretHardcoded secret di repo = undangan terbuka buat bocor.
βœ” Tambahkan & validasi consent checkboxPengumpulan data tanpa consent = pelanggaran Pasal 15.
βœ” Validasi semua akses di backendFrontend doang gak cukup. Bisa di-bypass pake Postman.
βœ” Jangan share data production sembaranganBegitu keluar sistem, udah gak bisa dikontrol lagi.
βœ” Simpan jejak *consent* dan akses dataBerguna banget saat audit atau user minta bukti.
βœ” Audit log, akses, dan backup secara berkalaKadang yang bikin masalah bukan fitur, tapi yang ngendap di belakang.
βœ” (dan masih banyak lagi...)Pokoknya, kalau itu data pribadi β€” anggap aja PII dan lindungi.
βœ… Mantap!

Kalau semua checklist ini kamu pegang waktu ngoding, 80% masalah compliance bisa dihindari bahkan sebelum security dateng review.

🧨 Penutup

❌ NGERI INI MAH!!!

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 :

Compliance Itu Apa? Dan Kenapa Kode Kamu Bisa Bikin Kantor Kena Denda?