Basic Percona: Masking Data เบื้องต้น

KANIN SRIMACHAN
WeLoveBug dot Com
Published in
2 min readAug 16, 2023

การ ปกปิดข้อมูลด้วยการใช้ Masking Data ของ Percona นั้นมีวิธีที่หลากหลาย ไม่ว่าจะด้วยการปกปิดคำ คำ นั้นด้วยการเซนเซอร์ เปลี่ยนคำไปเลย หรือ สุ่มค่าขึ้นมาใหม่

https://unsplash.com/photos/HuC3cii5VA8

โดยวันนี้เราจะทำความรู้จักการปกปิดแบบแรกกัน ด้วยการ ใช้งาน Masking Data เพื่อทำให้ข้อมูลของลูกค้าไม่ปรากฏสู่สาธารณะ

โดยเราจะมาเรียนรู้การทำงานของการทำ Masking Data ทั้งหมด 5 แบบ ของ Percona กันครับ

Picture from Auther

โดยจะสามารถแบ่งได้ 5 แบบ ตามรูปข้างต้น inner, outer, pan, pan_relaxed, ssn

แล้วแต่ละอันแตกต่างกันอย่างไรบ้างละ

1.Mask_inner และ Mask_outer

ผมขอรวม 2 หัวข้อนี้ไว้ด้วยกัน เนื่องจากวิธีการทำงานของทั้ง 2 แบบนั้นค่อนข้างเหมือนกัน ต่างแค่วิธีการใช้งานเล็กๆน้อยๆ

inner ส่งกลับผลลัพธ์ที่มีการปกปิดเฉพาะส่วนในของสตริง สามารถเปลี่ยนตัวอักษรที่ใช้ในการปกปิดได้ outer ทำการปกปิดข้อมูลส่วนนอก แต่จะไม่ปกปิดข้อมูลส่วนด้านใน

Mask_inner, mask_inner (‘string, margin1, margin2,[character])

Mask_outer, mask_outer(‘string, margin1, margin2, [character])

ดูจาก parameter ข้างบนอาจจะเห็นว่ามันไม่ต่างกันเลย

แต่หากเราลองเขียนให้แสดงผลมันจะได้ค่าที่ต่างกันคือ

6XXXXXXXXXXX0 สำหรับ inner

XXX7015583XXX สำหรับ outer

การเรียกใช้คำสั่งนั้นเหมือนกันเลย แค่ค่าที่ออกมานั้นต่างกัน โดย inner จะปกปิดคำด้านใน outer ปกปิดคำด้านนอกนั่นเอง

2.Mask_Pan

ปกปิดหมายเลขบัญชี(PAN) โดยแทนที่ข้อมูลด้วย “X” ยกเว้นสี่ตัวสุดท้าย ข้อมูล PAN ต้องมีความยาว 15 ตัวอักษรหรือ 16 ตัวอักษร

Mask_pan, mask_pan(‘string’)

สมมุติ ว่าเราใส่ค่า 123456789012345 ลงไป และเราทำการปกปิดด้วยการใช้ mask_pan จะทำให้ค่าที่ออกมาเป็น

XXXXXXXXXXX2345

โดยการปกปิดด้วยวิธีการนี้จะปกปิดเลขที่มีจำนวน 15 ถึง 16 ตัวได้เท่านั้น และจะทำการปกปิดคำทุกตัวยกเว้น 4 ตัวอักษรสุดท้ายตามตัวอย่าง

3.Mask_Pan_Relaxed

โชว์ข้อมูลแค่หกตัวแรกและตัวเลขสี่ตัวสุดท้าย สตริงที่เหลือจะถูกแทนที่ด้วย “X”

mask_pan_relaxed, mask_pan_relaxed(‘string’)

สมมุติ ว่าเราใส่ค่า 123456789012345 ลงไป และเราทำการปกปิดด้วยการใช้ mask_pan_relaxed จะทำให้ค่าที่ออกมาเป็น

123456XXXXX2345

แล้วมันต่างกับ mask inner อย่างไรละ?

mask pan relaxed ถูกตั้งไว้แล้วว่าให้เว้น 6 ตัวแรก และ 4 ตัวสุดท้ายไม่ให้ปกปิดไว้อยู่แล้ว ต่างกับ mask_inner ที่ต้องระบุค่าเองว่าจะปกปิดกี่ตัว ถึง กี่ตัว แต่ข้อจำกัดยังคงเท่าเดิมคือใช้ได้กับตัวเลขที่ limit ไว้เท่านั้น

4.Mask_SSN

โชว์ข้อมูลที่มองเห็นเฉพาะตัวเลขสี่ตัวสุดท้าย ข้อมูลที่เหลือจะถูกแทนที่ด้วย “X”

mask_ssn, mask_ssn(‘string’)

สมมุติ ว่าเราใส่ค่า 555–55–5555 ลงไป และเราทำการปกปิดด้วยการใช้ mask_ssn จะทำให้ค่าที่ออกมาเป็น

XXX-XX-5555

โดยจะเห็นว่าวิธีที่ใช้นี้ จะเน้นไปที่การปกปิดคำทั้งหมดทุกวิธี ทั้งนี้ผู้อ่านสามารถเปลี่ยนค่าที่ใช้ปกปิดจาก “X” เป็นตัวอักษรอื่นๆได้ ขึ้นอยู่กับที่ผู้อ่านต้องการได้เลยครับ

หวังว่าบทความนี้จะทำให้ผู้อ่านเข้าใจมากขึ้นไม่มากก็น้อย ขอบคุณที่อ่านกันจนจบครับผม 🎉🎉🎊🎊

--

--