PDPA กับการพัฒนาซอฟต์แวร์
สิ่งที่ Developer ต้องรู้
พ.ร.บ. คุ้มครองข้อมูลส่วนบุคคล พ.ศ. 2562 ไม่ใช่แค่เรื่องของฝ่ายกฎหมาย — มันส่งผลโดยตรงต่อทุก บรรทัดโค้ดที่สัมผัสข้อมูลผู้ใช้ Developer ที่ไม่รู้ PDPA คือ Developer ที่กำลังสร้างความเสี่ยงให้องค์กรโดยไม่รู้ตัว
PDPA คืออะไร และทำไม Developer ต้องสนใจ?
PDPA คืออะไร?
พระราชบัญญัติคุ้มครองข้อมูลส่วนบุคคล พ.ศ. 2562 (Personal Data Protection Act) คือกฎหมายไทยที่ กำหนดว่าองค์กรต้องเก็บ ใช้ และเปิดเผยข้อมูลส่วนบุคคลอย่างไร มีแนวทางคล้าย GDPR ของยุโรป แต่ปรับให้เหมาะกับบริบทไทย
ทำไม Developer ต้องสนใจ?
เพราะ ซอฟต์แวร์คือจุดที่ข้อมูลถูกประมวลผล การออกแบบ Schema ที่เก็บข้อมูลเกินจำเป็น, API ที่ expose ข้อมูลส่วนบุคคล, หรือ Log ที่บันทึก PII โดยไม่ตั้งใจ — ล้วนเป็นการละเมิด PDPA ที่ Developer สร้างขึ้นโดยไม่รู้ตัว
ข้อมูลส่วนบุคคล vs ข้อมูลอ่อนไหว — ต่างกันอย่างไร?
ฐานทางกฎหมาย 6 ประการ — ไม่ใช่แค่ Consent อย่างเดียว
เจ้าของข้อมูลให้ความยินยอมอย่างชัดแจ้งและสมัครใจ ต้องสามารถถอนได้ตลอดเวลา ใช้กับข้อมูลที่ไม่มีฐานอื่นรองรับ
จำเป็นต้องประมวลผลเพื่อปฏิบัติตามสัญญากับเจ้าของข้อมูล หรือดำเนินการตามคำขอก่อนทำสัญญา
จำเป็นต้องประมวลผลเพื่อปฏิบัติตามกฎหมายที่ผู้ควบคุมข้อมูลต้องปฏิบัติตาม
จำเป็นต้องประมวลผลเพื่อป้องกันหรือระงับอันตรายต่อชีวิต ร่างกาย หรือสุขภาพ
จำเป็นต้องประมวลผลเพื่อปฏิบัติภารกิจเพื่อประโยชน์สาธารณะ หรือการใช้อำนาจรัฐ
จำเป็นเพื่อผลประโยชน์อันชอบธรรมของผู้ควบคุมข้อมูลหรือบุคคลที่สาม โดยไม่กระทบสิทธิ์เจ้าของข้อมูลเกินควร
สิทธิ์ 8 ประการของเจ้าของข้อมูล — ที่ระบบต้องรองรับ
สิทธิ์รับทราบ (Right to be Informed)
ต้องแจ้งให้เจ้าของข้อมูลทราบก่อนหรือขณะเก็บรวบรวม ว่าเก็บอะไร ทำไม นานแค่ไหน และแชร์ให้ใคร
สิทธิ์ขอเข้าถึง (Right of Access)
เจ้าของข้อมูลขอสำเนาข้อมูลที่เราเก็บได้ ต้องตอบกลับภายใน 30 วัน ระบบต้องสามารถ export ข้อมูลของ user คนเดียวได้
สิทธิ์ส่งต่อข้อมูล (Right to Data Portability)
ส่งข้อมูลในรูปแบบที่อ่านได้ด้วยเครื่อง (machine-readable) ให้เจ้าของข้อมูลหรือผู้ควบคุมรายอื่น
สิทธิ์คัดค้าน (Right to Object)
คัดค้านการประมวลผลข้อมูลได้ โดยเฉพาะการใช้เพื่อ Direct Marketing หรือ Profiling ระบบต้อง honour การ opt-out
สิทธิ์ลบข้อมูล (Right to Erasure)
"Right to be forgotten" — ขอให้ลบข้อมูลได้เมื่อไม่มีความจำเป็นต้องเก็บอีกต่อไป ต้องลบทั้งใน Primary DB, Backup, และ Log
สิทธิ์ระงับการใช้ (Right to Restriction)
ขอให้หยุดประมวลผลข้อมูลชั่วคราวในระหว่างที่ตรวจสอบหรือโต้แย้งความถูกต้อง ต้องมี flag ระงับการใช้งาน
สิทธิ์แก้ไข (Right to Rectification)
ขอให้แก้ไขข้อมูลที่ไม่ถูกต้องหรือไม่ครบถ้วนได้ ระบบต้องมีช่องทางให้ผู้ใช้หรือเจ้าหน้าที่แก้ไขข้อมูลได้
สิทธิ์ถอน Consent (Right to Withdraw)
ถอนความยินยอมได้ตลอดเวลาโดยง่ายเหมือนกับการให้ความยินยอม การถอนต้องไม่กระทบข้อมูลที่ประมวลผลไปแล้วก่อนถอน
ความผิดพลาดที่ Developer มักทำ — และวิธีแก้
console.log(`User login: ${user.email}, IP: ${req.ip}`) บรรทัดเดียวอาจทำให้ Email และ IP Address ของผู้ใช้ถูก log ไว้ในระบบ logging ที่มี คนหลายคนเข้าถึงได้ นี่คือการเปิดเผยข้อมูลส่วนบุคคลโดยไม่จำเป็น
การเก็บ Field เผื่อไว้ก่อน เช่น เก็บ Date of Birth ทั้งที่ระบบต้องการแค่ verify ว่าอายุเกิน 18 ปีหรือไม่ หรือเก็บ ID Card Number ทั้งที่ไม่มีการใช้งาน — ถือเป็นการฝ่าฝืนหลัก Data Minimization ของ PDPA
ระบบส่วนใหญ่มีแค่ Soft Delete (set is_deleted = true) แต่ข้อมูลยังอยู่ใน Database จริงๆ รวมถึง Backup และ Log PDPA กำหนดว่าการลบต้องเป็นการลบจริง ไม่ใช่แค่ซ่อนจากหน้าจอ
การ integrate Analytics SDK, Marketing Platform, หรือ Cloud Service โดยไม่ตรวจสอบว่า vendor เหล่านั้นมี DPA (Data Processing Agreement) กับองค์กรเราหรือไม่ ถือเป็นการส่งข้อมูล ให้ผู้ประมวลผลโดยไม่มีสัญญา — ผิด PDPA มาตรา 40
PDPA Developer Checklist — ทำก่อน Go Live
ก่อนเริ่มพัฒนา
- ระบุและ document ข้อมูลส่วนบุคคลทุกประเภทที่ระบบจะเก็บ (Data Mapping)
- กำหนด Lawful Basis สำหรับแต่ละ data point อย่างชัดเจน
- ออกแบบโดยยึดหลัก Data Minimization — เก็บเฉพาะสิ่งที่จำเป็น
- กำหนด Data Retention Policy — เก็บนานแค่ไหน ลบเมื่อไหร่
- วางแผน User Rights Flow (Access, Deletion, Export, Opt-out)
- ทำ Vendor Assessment สำหรับ Third-party ทุกตัวที่จะรับข้อมูลผู้ใช้
ระหว่างการพัฒนา
- เข้ารหัสข้อมูลส่วนบุคคลที่ sensitive ใน Database (Encryption at Rest)
- ใช้ HTTPS/TLS ทุก Endpoint (Encryption in Transit)
- ไม่ log PII ใน Application Log — ใช้ User ID แทน
- สร้าง API สำหรับ Data Export (JSON/CSV) ในระดับ User
- สร้าง Data Deletion Pipeline ที่ครอบคลุม DB, Cache, Backup
- Implement Consent Management — บันทึก consent พร้อม timestamp และ version
- สร้างกลไก Withdraw Consent ที่ทำงานได้จริง
- Mask หรือ Anonymize ข้อมูลใน Non-production environment
ก่อน Go Live
- มี Privacy Policy ที่ชัดเจน ครบถ้วน และเข้าถึงได้ง่าย
- มี Cookie Notice / Consent Banner (ถ้าใช้ Tracking Cookies)
- มี DPA ลงนามแล้วกับ Vendor ทุกรายที่รับข้อมูลส่วนบุคคล
- มี Incident Response Plan สำหรับ Data Breach (แจ้ง PDPC ภายใน 72 ชม.)
- ทดสอบ User Rights Flow จริงๆ — ขอข้อมูล, ขอลบ, ถอน Consent
- ตั้ง Monitoring สำหรับ Unauthorized Access ต่อข้อมูลส่วนบุคคล
PDPA ไม่ใช่ภาระ — มันคือ Engineering Standard ใหม่
Developer ที่เข้าใจ PDPA ไม่ได้แค่ "ไม่ทำผิดกฎหมาย" — พวกเขาสร้างระบบที่ มีคุณภาพสูงกว่า ระบบที่ออกแบบมาให้ลบข้อมูลได้จริงๆ export ได้ และควบคุม consent ได้ คือระบบที่มีสถาปัตยกรรมที่ดีกว่าโดยธรรมชาติ
จุดเริ่มต้นที่ดีที่สุดคือนำ PDPA เข้าสู่ Definition of Done ของทีม — ก่อน Story ใดๆ จะถือว่า Done ต้องตอบได้ว่า "Story นี้สัมผัสข้อมูลส่วนบุคคลไหม? ถ้าใช้ เราจัดการถูกต้องตาม PDPA แล้วหรือยัง?"
ที่ Tensora เราฝัง PDPA Awareness ไว้ในกระบวนการพัฒนาตั้งแต่ต้น ทุก Schema ที่ออกแบบ ทุก API ที่สร้าง และทุก Third-party ที่ integrate ผ่านการพิจารณาด้านความเป็นส่วนตัวก่อนเสมอ เพราะ Compliance ที่ดีที่สุดคือ Compliance ที่ build-in ตั้งแต่ Day 1 ไม่ใช่ bolt-on ทีหลัง
กำลังพัฒนาระบบที่ต้องสอดคล้องกับ PDPA?
พูดคุยกับทีม Tensora →