KEY CHAIN ใน iOS สำคัญไฉน
ในโลกของธุรกิจทุกวันนี้เราคงปฎิเสธกันไม่ได้เลยว่าขุมทองของธุรกิจนั้นมาจากแหล่งข้อมูลและแหล่งข้อมูลหรือข้อมูลส่วนตัวของผู้ใช้ก็มีความสำคัญไม่แพ้กันนั่นจึงทำให้นักพัฒนาหลายหลายท่านต้องเอาใจใส่กับการรักษาความความสำคัญของข้อมูลเหล่านั้นเอาไว้ ซึ่งในการพัฒนาแอพพลิเคชั่นเราจะไม่ให้ความสำคัญกับเรื่องข้อมูลไม่ได้เพราะข้อมูลที่ผู้ใช้กรอกเข้ามาในระบบอย่างเช่นบัตรประชาชน หนังสือเดินทาง เลขบัญชีหรือแม้กระทั่งวันเกิด ข้อมูลพวกนี้แหละที่นักพัฒนาต้องให้ความสนใจเพื่อไม่ให้ถูกเหล่ามิจฉาชีพนำข้อมูลเหล่านั้นไปใช้ในทางที่ผิดหรือเพื่อปลอมแปลงความเป็นตัวตนของผู้ใช้งาน
วันนี้เลยอยากจะมาพูดเรื่องการเก็บข้อมูลส่วนบุคคลของผู้ใช้บนมือถือระบบปฏิบัติการ iOS การที่เราจะเก็บข้อมูลของผู้ใช้ลงในมือถือมันสามารถใช้หลายวิธีได้ด้วยกันแต่วิธีการเหล่านั้นจะมีความปลอดภัยหรือไม่ก็ขึ้นอยู่กับนักพัฒนาเลือกที่จะเอาข้อมูลเหล่านั้นไปเก็บไว้ในส่วนที่มีความปลอดภัยหรือไม่
ข้อมูลสำคัญควรเก็บตรงไหน ?
หนึ่งในวิธีการเก็บข้อมูลส่วนบุคคลที่สำคัญในระบบปฏิบัติการ iOS นั่นก็คือการเก็บข้อมูลลงใน Keychain ซึ่งเป็นการเก็บข้อมูลที่มีความปลอดภัยได้ในระดับหนึ่ง
ซึ่งในบทความนี้จะไม่ขอลงรายละเอียดว่า Keychain มีหน้าที่การทำงานแบบไหน การเก็บข้อมูลของมันเอาไปเก็บที่ไหน แต่จะนำเสนอในส่วนของวิธีการนำไปใช้งาน ปัจจุบันมีนักพัฒนาหลายท่านได้ทำการพัฒนา library เพื่อให้เกิดความสะดวกสบายให้กับนักพัฒนาท่านอื่นๆ ซึ่งวันนี้ผมจะมาสอนวิธีการใช้ KeychainAccess
วิธีติดตั้ง
- เปิด Terminal
- ไปที่ Path ของโปรเจ็คที่สร้างไว้ ( cd Desktop/Keychain/ )
- run คำสั่ง “pod init” จากนั้นจะได้ file เพิ่มขึ้นมา
- run คำสั่ง “open Podfile”
- เติมคำสั่ง pod ‘KeychainAccess’ ตามรูปด้านล่าง แล้ว Save
- run “pod install”
เพียงเท่านี้เราก็จะสามารถใช้เจ้า KeychainAccess ได้แล้วเรามาเริ่ม Code กันดีกว่า
- เปิดไฟลที่ต้องท้ายด้วย .xcworkspace
- เมื่อเข้ามาแล้วด้านซ้ายไปที่ ViewController.swift
- แล้วทำการ “import KeychainAccess” เราก็จะสามารถใช้งานมันได้แล้วใน class นี้
วิธีบันทึกข้อมูล
Keychain().set( #1, key: #2 )
จากตัวอย่าง Code ด้านบนสิ่งที่เราต้องใช้มี 2 อย่างคือ
- #1 ค่าที่เราต้องการเก็บ (value)
- #2 Key ที่เราเอาไว้ใช้อ้างอิงเพื่อเก็บ value นั้น
Code เพียงเท่านี้แหละทำให้เราสามารถเก็บข้อมูลสำคัญของลูกค้าไว้ในที่ปลอดภัยได้ในระดับหนึ่งแล้ว และด้านล่างคือตัวอย่าง Code ที่เอาไปใช้งานจริง
do {try Keychain().set("piyawut kamwiset", key: "firstName")} catch let error {print("error: \(error)")}
จากโค้ดข้างบนจะทำหน้าที่ในการบันทึก Value “piyawut kamwiset” และ Key คือ “firstName” และถ้าเกิด Code ตัวนี้ทำงานแล้วเกิดข้อผิดพลาดจะทำให้ไปตกใน catch ซึ่งขอไม่อธิบายเรื่อง try catch ในบทความนี้นะครับ ถ้าสนใจเรื่อง try catch สามารถอ่านได้จากลิ้งนี้ครับ
วิธีเอาข้อมูลออกมา ?
Keychain().get( #1 )
- #1 คือ Key ที่เราต้องการ
และด้านล่างก็คือตัวอย่าง Code ตัวอย่าง
do {let firstName = Keychain().get("firstName")} catch let error {print("error: \(error)")}
Code ด้านบนนี้จะทำการเอาข้อมูลใน keychain ออกมา ซึ่ง key ที่ใช้อ้างอิงคือ firstName ถ้ารวมกับ code ส่วนแรก value ที่ออกมาก็คือ piyawut kamwiset นั้นเอง
ในบทความนี้ก็อยากจะให้เพื่อนๆนักพัฒนาหันมาสนใจเก็บข้อมูลของผู้ใช้ระบบให้มีความปลอดภัยกันมาเพื่อนขึ้นเพราะ
ข้อมูลเพียงเล็กน้อยของผู้ใช้ที่เราเก็บแบบไม่ปลอดภัย อาจจะกลับมาทำร้ายผู้ใช้ของเราอย่างที่เราคาดไม่ถึงก็ได้