Security Best Practices

เรื่องความปลอดภัยกับการรับชำระเงินออนไลน์จะนิ่งนอนใจไม่ได้ เพื่อการปกป้องและคุ้มกันข้อมูลส่วนบุคคลอย่างดีที่สุด โอมิเซะจึงมีแนวทางปฏิบัติเพื่อความปลอดภัยที่อยากให้ทุกๆ คนร่วมมือกันปฏิบัติตาม ซึ่งสอดคล้องกับนโยบายความปลอดภัย ของบริษัท

แนวทางปฏิบัติเพื่อความปลอดภัยของผู้ใช้ ร้านค้าควรมีข้อปฏิบัติตามแนวทางดังต่อไปนี้:

หากมีข้อสงสัยหรือต้องการความช่วยเหลือเพิ่มเติม กรุณาติดต่อเรา.

การส่งข้อมูลบัตรจากฝั่งลูกค้า

โอมิเซะได้การรับรองมาตรฐานความปลอดภัย PCI DSS 3.2.1. PCI DSS คือมาตรฐานสากลที่รับรองความปลอดภัยในการรับส่ง จัดเก็บและประมวลผลของข้อมูลบัตร

เพื่อให้สอดคล้องกับมาตรฐานความปลอด PCI DSS ร้านค้ามีความจำเป็นต้องส่งข้อมูลบัตรจากผู้ซื้อตรงมาที่เซิร์ฟเวอร์ของโอมิเซะอย่างปลอดภัยผ่านไลบรารี่ฝั่งผู้ซื้อ (Client-side) หรือปลั๊กอิน

ข้อมูลบัตรทุกใบที่เข้าสู่ระบบของโอมิเซะจะถูกแปลงเป็น Token ทั้งหมด ซึ่งร้านค้าสามารถนำ Token ไปใช้สร้างรายการและทำธุรกรรมอื่นๆ ได้อย่างปลอดภัย

วิธีนี้จะทำให้ข้อมูลบัตรของผู้ซื้อส่งตรงมาที่เซอร์เวอร์ของโอมิเซะโดยไม่ผ่านเซิร์ฟเวอร์ของร้านค้า

Token overview

โอมิเซะมีข้อยกเว้นเดียวที่อนุญาตให้ส่งข้อบัตรผ่านเซอร์เวอร์ของร้านค้าได้ คือ ร้านค้านั้นๆ จะต้องผ่านการรับรองมาตรฐานความปลอดภัย PCI DSS ร้านค้าที่ผ่านการรับรองมาตรฐานความปลอดภัย PCI DSS ยังคงต้องแจ้งทางทีมงานโอมิเซะก่อนที่จะทำการส่งข้อมูลบัตรด้วยตนเอง

หากร้านค้าต้องการรับชำระเงินบนเว็บไซต์ของผู้ซื้อ กรุณาใช้หน้าเช็คเอ้าท์สำเร็จรูปจาก Omise.js หากร้านค้าต้องการรับชำระเงินบนมือถือของผู้ซื้อ กรุณาใช้ iOS หรือ Android SDKs ที่เราได้เตรียมไว้ให้ สำหรับร้านค้าที่ใช้ ปลั๊กอิน กรุณาอย่าเปลี่ยนแปลง source code

หลีกเลี่ยงการบันทึกข้อมูลบัตร

ร้านค้าควรระมัดระวังและหลีกเลี่ยงการบันทึกข้อมูลบัตรทุกประเภท

เมื่อต้องสร้างฟอร์มชำระเงิน ให้ตรวจสอบว่า parameters ของฟอร์มที่มีข้อมูลบัตรไม่ได้ถูกส่งเข้าเซอร์เวอร์ของร้านค้าหรือมีการบันทึกเหตุการณ์เก็บไว้

ร้านค้าควรทำการปิดการติดตาม (tracking) จากเครื่องมือวิเคราะห์ข้อมูลต่างๆ บนหน้าเช็คเอ้าท์ เช่น Mixpanel และ Google Analytics

การเปิดใช้งาน HTTPS บนเว็บไซต์

HTTPS คือ สิ่งจำเป็น สำหรับหน้าชำระเงินของร้านค้าทุกประเภทและโอมิเซะ แนะนำเป็นอย่างยิ่ง ให้เปิดใช้งานบนเว็บไซต์ร้านค้าทั้งหมด

การเปิดใช้งาน HTTPS บนเว็บไซต์และหน้าชำระเงินจะช่วยป้องกันข้อมูลต่างๆ และเพิ่มความมั่นใจในการใช้งานของบรรดาผู้ใช้เว็บไซต์ของร้านค้าซึ่งทำให้จบการซื้อขายได้เร็วขึ้น

เว็บไซต์ค้นหาข้อมูลหรือ Search engines จะเรียงลำดับการค้นหาของเว็บไซต์ที่มีการเปิดใช้งาน HTTPS สูงกว่าเว็บไซต์ที่ไม่ได้ใช้งาน HTTPS

Transport Layer Security หรือ TLS คือใบรับรองความปลอดภัยอิเล็กทรอนิกส์ที่สืบทอดมาจาก SSL ร้านค้าจะต้องใช้ TLS (เวอร์ชัน 1.2 ขึ้นไป) และ ciphers ที่ระบบรองรับ เพื่อเปิดใช้งาน HTTPS บนเว็บไซต์

โอมิเซะแนะนำให้ใช้ Let's Encrypt สำหรับใบรับรองความปลอดภัยอิเล็กทรอนิกส์

ร้านค้าจำเป็นต้องเปิดใช้งาน HTTPS บนเว็บไซต์หากต้องการใช้ webhook endpoint URL

TLS Ciphers ที่ระบบรองรับ

TLS ciphersที่ระบบของเรารองรับมีดังนี้:

  • ECDHE-ECDSA-AES128-GCM-SHA256
  • ECDHE-RSA-AES128-GCM-SHA256
  • ECDHE-ECDSA-AES128-SHA256
  • ECDHE-RSA-AES128-SHA256
  • ECDHE-ECDSA-AES256-GCM-SHA384
  • ECDHE-RSA-AES256-GCM-SHA384
  • ECDHE-ECDSA-AES256-SHA384
  • ECDHE-RSA-AES256-SHA384

การจัดเก็บและส่ง Secret Key อย่างปลอดภัย

ทุกบัญชีจะมีทั้ง public key และ secret key (อ่านเพิ่มเติม API การยืนยันตัวตน)

Public key จะสามารถใช้ได้เฉพาะ operation เรื่องความปลอดภัยบางอย่างเช่น การสร้าง token บัตรเครดิต

ส่วน Secret key จะสามารถใช้ได้กับ API อื่นๆ เช่น การสร้างรายการ รายการคืนเงิน รายการโอนเงิน และการดาวน์โหลดข้อมูลของลูกค้า

ร้านค้าควรทำตามขั้นตอนดังต่อไปนี้เพื่อเก็บ secret key ให้ปลอดภัย:

  • ห้ามบันทึก secret keys ไว้ใน code repository (git, svn, hg) โดยเด็ดขาด สำหรับผู้ที่ใช้งาน Heroku สามารถเลือก environment variables เพื่อจัดเก็บ secret key ได้ (ดูตัวอย่างได้จาก Heroku)
  • หลีกเลี่ยงการแชร์บัญชีผู้ใช้กับผู้อื่น ร้านค้าสามารถตรวจสอบว่ามีผู้ใช้อื่นเข้าบัญชีของตัวเองได้ที่ https://dashboard.omise.co/sessions
  • ใช้รหัสผ่านที่แข็งแรงและเปิด Two-Factor Authentication (2FA) สำหรับการเข้าใช้แดชบอร์ด เว็บไซต์ และ เซอเวอร์อื่นๆ

ในกรณีที่ secret key ถูกเปิดเผย ร้านค้าจะต้องลงชื่อเข้าใช้เพื่อทำการ roll key บนแดชบอร์ดทันที

*โอมิเซะแนะนำให้ติดต่อทีมงานของเราทันที]หากทราบว่ามีข้อมูลส่วนบุคคลถูกรั่วไหล หรือหากมีบุคคลภายนอกเข้าบัญชีผู้ใช้โดยไม่ได้รับอนุญาต

การทำตามคำแนะนำเพื่อลดความเสี่ยงของรายการทุจริต

ระบบป้องกันการทุจริตของโอมิเซะจะใช้ข้อมูลของทุกๆ รายการ เพื่อประเมินความเสี่ยงของรายการนั้นๆ

นอกเหนือจากหน้าเช็คเอ้าท์สำเร็จรูปที่ปลอดภัยแล้ว Omise.js ยังทำหน้าที่เป็นเครื่องมือช่วยเก็บข้อมูลต่างๆ เช่น หมายเลข IP ของลูกค้า ตัวแทนเบราว์เซอร์ และ ประวัติการใช้งานของเบราว์เซอร์ เพื่อป้อนให้ระบบป้องกันการทุจริตของเราประเมินความเสี่ยงอีกด้วย

ตัวอย่างเช่น ถ้าหมายเลข IP มาจาก ผู้ให้บริการเซิร์ฟเวอร์โฮสติ้ง เครือข่าย Tor หรือ พร็อกซี่สาธารณะจะทำให้รายการนั้นมีความเสี่ยงเป็นรายการทุจริตสูง แต่ถ้าหมายเลข IP ของลูกค้ามาจาก ADSL แล้วตรงกับที่ตั้งประเทศผู้ออกบัตร รายการนั้นมีความเป็นไปได้สูงที่จะเป็นรายการที่ถูกต้อง

เพื่อให้ระบบป้องกันรายการทุจริตของโอมิเซะประเมินผลได้เต็มประสิทธิภาพ เราแนะนำให้ร้านค้าช่วยเก็บบันทึกข้อมูลดังต่อไปนี้ ที่อยู่จัดส่งเอกสาร (billing address) โดยเฉพาะผู้ถือบัตรจากสหรัฐอเมริกาและแคนาดา และใช้งาน parameters ต่างๆ เช่น charge.ip charge.description และ customer.email

การชี้แจงข้อมูลเพิ่มเติมของรายการนั้นๆ เช่น จำนวนสินค้าสั่งซื้อ ชนิดของสินค้า วันส่งสินค้า และข้อมูลของลูกค้าเพิ่มเติม เช่น หมายเลข IP ของลูกค้า จะช่วยให้[ระบบป้องกันการทุจริต(/th/fraud-protection) ของเราแม่นยำมากขึ้น

คอยตรวจสอบและบันทึกเหตุการณ์อยู่เสมอ

ธุรกิจบางประเภทมีความเสี่ยงของรายการทุจริตสูง (ตรวจสอบประเภทธุรกิจที่ระบบเราไม่รองรับได้ที่นี่)

ตัวอย่างเช่น บริการเติมเงินมือถือ เพราะสามารถเกิดการรั่วไหลของเงินจากการทุจริตโดยบุคคลภายนอกก่อนที่ทางผู้ให้บริการจะทำการยกเลิกรายการหรือทำการคืนเงิน

โอมิเซะอยากให้เจ้าของธุรกิจทุกคนคอยตรวจสอบ เฝ้าระวังและคอยบันทึกเหตุการณ์อยู่ตลอด โดยเฉพาะกลุ่มธุรกิจที่มีความเสี่ยงสูง

สามารถตรวจสอบได้โดยการล็อกอินเข้าไปที่หน้าแดชบอร์ดแล้วคลิกที่ บันทึกเหตุการณ์

การติดตามและทันสถานการณ์อยู่เสมอ

คู่มือการใช้งานบนเว็บไซต์นี้มีการอัปเดตอยู่เสมอ เราแนะนำให้เข้ามาเยี่ยมชมเว็บไซต์ของเราเพื่อติดตามข่าวสารด้านความปลอดภัย รวมถึงเช็ค library ใหม่ๆ ที่เราอาจเพิ่มเข้ามาด้วย

ร้านค้าทุกประเภทควรอัพเดทซฟอท์แวร์ต่างๆ อยู่เสมอและเข้ามาตรวจสอบเอกสารนี้เพื่อศึกษาข้อแนะนำใหม่ๆ เกี่ยวกับการรับชำระเงินอย่างปลอดภัย

ขั้นตอนต่อไป