แนวปฏิบัติด้านความปลอดภัยสำหรับร้านค้า
หัวข้อทั้งหมดในหน้านี้
แนวปฏิบัติด้านความปลอดภัยสำหรับร้านค้า
เอกสารที่เกี่ยวข้อง: คู่มือนี้อธิบายความรับผิดชอบของร้านค้าในการรับชำระเงินออนไลน์ และแนวปฏิบัติที่ดีที่สุดในการปฏิบัติตาม สำหรับแนวคิดพื้นฐาน เช่น การ tokenization การเข้ารหัส และการปฏิบัติตามมาตรฐาน PCI DSS โปรดดูที่ ภาพรวมความปลอดภัย
หากมีข้อสงสัยหลังจากอ่านเอกสารนี้ กรุณาติดต่อฝ่ายสนับสนุน Omise
1. ส่งข้อมูลบัตรจากอุปกรณ์ไคลเอนต์
Omise ได้รับการรับรองให้เป็นผู้ให้บริการที่ปฏิบัติตามมาตรฐาน PCI DSS PCI DSS คือชุดข้อกำหนดที่อุตสาหกรรมกำหนดขึ้น เพื่อให้มั่นใจว่าข้อมูลบัตรได้รับการประมวลผล จัดเก็บ และส่งต่ออย่างปลอดภัย
เพื่อให้สอดคล้องกับข้อกำหนดเหล่านี้ คุณต้องส่งข้อมูลบัตรโดยตรงจากอุปกรณ์ไคลเอนต์ของผู้ใช้ไปยังเซิร์ฟเวอร์ vault ที่เข้ารหัสของ Omise โดยใช้ไลบรารีหรือปลั๊กอินฝั่งไคลเอนต์ที่ให้บริการ ไลบรารีเหล่านี้จะส่งคืน token แบบใช้ครั้งเดียว ซึ่งเซิร์ฟเวอร์ backend ของคุณใช้สร้างการเรียกเก็บเงินและดำเนินการบัตรอื่น ๆ ข้อมูลบัตรจริงไม่มีวันผ่านเซิร์ฟเวอร์ของคุณ

ข้อยกเว้น: ร้านค้าที่ได้รับการรับรอง PCI DSS ด้วยตนเองยังคงต้องแจ้ง Omise ก่อนที่จะจัดการข้อมูลบัตรโดยตรง
ใช้การผสานรวมฝั่งไคลเอนต์ที่เหมาะสมสำหรับแพลตฟอร์มของคุณ:
| แพลตฟอร์ม | การผสานรวม |
|---|---|
| Web (เบราว์เซอร์) | Omise.js และฟอร์มชำระเงินที่สร้างไว้ล่วงหน้า |
| iOS | Omise iOS SDK |
| Android | Omise Android SDK |
| ปลั๊กอิน | ปลั๊กอิน Omise ที่ได้รับการอนุมัติ — ห้ามแก้ไขซอร์สโค้ด |
หลีกเลี่ยงการบันทึกข้อมูลบัตรที่ละเอียดอ่อนโดยไม่ตั้งใจ
เมื่อสร้างฟอร์มชำระเงิน ตรวจสอบให้แน่ใจว่าพารามิเตอร์ฟอร์มที่มีข้อมูลบัตรจะไม่ถูกส่งไปยังเซิร์ฟเวอร์ของคุณหรือบันทึกลงใน server log โดยไม่ตั้งใจ
ปิดการใช้งานเครื่องมือวิเคราะห์และติดตาม เช่น Mixpanel และ Google Analytics บนหน้าชำระเงินของคุณ เครื่องมือเหล่านี้เก็บข้อมูลจากหน้าเว็บที่โหลด ซึ่งอาจรวมถึงข้อมูลที่ละเอียดอ่อนของผู้ใช้ และส่งข้อมูลนั้นไปยังบุคคลที่สาม
2. เปิดใช้งาน HTTPS บนเว็บไซต์ของคุณ
HTTPS เป็นสิ่งที่จำเป็นสำหรับหน้าชำระเงินของคุณ และแนะนำอย่างยิ่งสำหรับเว็บไซต์ทั้งหมดของคุณ
การเปิดใช้งาน HTTPS บนหน้าชำระเงินจะปกป้องข้อมูลที่ละเอียดอ่อนของผู้ใช้ ป้องกันการบุกรุกบัญชี และเพิ่มความเชื่อมั่นของผู้ใช้ ซึ่งอาจนำไปสู่อัตราการแปลงที่สูงขึ้น นอกจากนี้ เสิร์ชเอนจิ้นยังจัดอันดับเว็บไซต์ที่รองรับ HTTPS ให้สูงขึ้นด้วย
Transport Layer Security (TLS) คือโปรโตคอลที่สืบทอดต่อจาก SSL คุณต้องใช้ TLS เวอร์ชัน 1.2 ขึ้นไป ร่วมกับ cipher suite ที่รองรับ เพื่อเปิดใช้งาน HTTPS บนเว็บเซิร์ฟเวอร์ของคุณ Omise แนะนำ Let's Encrypt สำหรับการขอรับใบรับรอง
หมายเหตุ: HTTPS ยังจำเป็นสำหรับURL ของ webhook endpoint ด้วย หากเปิดใช้งาน webhook บนบัญชีของคุณ
ชุดรหัสเข้ารหัส TLS ที่รองรับ
รองรับ cipher suite ต่อไปนี้ TLS cipher อื่น ๆ ที่มีความปลอดภัยต่ำกว่าอาจไม่ได้รับการยอมรับ:
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
3. จัดเก็บและส่งต่อคีย์ลับอย่างปลอดภัย
ทุกบัญชี Omise มี public key และ secret key โปรดดูรายละเอียดที่ การยืนยันตัวตน API
- Public key ของคุณสามารถใช้ได้เฉพาะกับการดำเนินการที่จำกัดและปลอดภัย เช่น การ tokenize บัตรเครดิต
- Secret key ของคุณให้สิทธิ์เข้าถึงการดำเนินการ API ทั้งหมด รวมถึงการสร้างการเรียกเก็บเงิน การออกคืนเงิน การโอนเงิน และการดึงข้อมูลลูกค้า
ปฏิบัติตามขั้นตอนต่อไปนี้เพื่อรักษาความปลอดภัยของ secret key:
- อย่า commit secret key ลงใน code repository ให้ใช้ environment variable แทน ดูตัวอย่างได้ที่เอกสาร Config Vars ของ Heroku
- อย่าแชร์บัญชี หากต้องการตรวจสอบว่าใครเข้าถึงบัญชีของคุณ ให้ไปที่ dashboard.omise.co/sessions
- ใช้รหัสผ่านที่แข็งแกร่งและเปิดใช้งานการยืนยันตัวตนสองปัจจัย (2FA) บน Omise dashboard และ backend การจัดการ e-commerce อื่น ๆ ที่คุณใช้
หาก secret key ของคุณถูกบุกรุก คุณต้องเข้าสู่ระบบ dashboard ทันทีและ roll key ของคุณ นอกจากนี้ยังแนะนำให้แจ้ง Omise โดยเร็วที่สุดเพื่อให้ทีมงานตรวจสอบความปลอดภัยของบัญชี
4. ปฏิบัติตามคำแนะนำเพื่อลดความเสี่ยงจากการฉ้อโกง
ระบบป้องกันการฉ้อโกงของ Omise ต้องการข้อมูลธุรกรรมโดยละเอียดเพื่อคำนวณคะแนนความเสี่ยงสำหรับแต่ละธุรกรรม
นอกจากการให้บริการฟอร์มชำระเงินที่ปลอดภัยแล้ว Omise.js ยังรวบรวมสัญญาณเสริมโดยอัตโนมัติ ได้แก่ IP address ของไคลเอนต์ ข้อมูล browser agent และประวัติเบราว์เซอร์ของผู้ใช้ ซึ่งระบบป้องกันการฉ้อโกงใช้ในการประเมินความเสี่ยง ตัวอย่างเช่น ธุรกรรมที่มาจากผู้ให้บริการโฮสติ้งเซิร์ฟเวอร์ Tor exit node หรือ public proxy จะมีคะแนนความเสี่ยงสูงกว่าธุรกรรมที่มาจากการเชื่อมต่อที่อยู่อาศัยในประเทศของผู้ออกบัตร
เพื่อเพิ่มประสิทธิภาพสูงสุดของการป้องกันการฉ้อโกงอัตโนมัติแนะนำให้ดำเนินการดังนี้:
- เก็บข้อมูลที่อยู่สำหรับเรียกเก็บเงิน โดยเฉพาะสำหรับลูกค้าในสหรัฐอเมริกาและแคนาดา
- ระบุพารามิเตอร์
charge.ip,charge.descriptionและcustomer.emailในคำขอการเรียกเก็บเงิน - ให้ข้อมูลการซื้อเพิ่มเติม เช่น จำนวนสินค้า ประเภทสินค้า และวันที่คาดว่าจะจัดส่ง
- ระบุ IP address จริงของลูกค้าแทนที่จะเป็น proxy หรือ IP ของเซิร์ฟเวอร์
สำหรับรายการพารามิเตอร์ที่แนะนำทั้งหมด โปรดดูคู่มือการป้องกันการฉ้อโกง
5. ตรวจสอบบันทึกของคุณ
ธุรกิจบางประเภทมีความเสี่ยงต่อการฉ้อโกงโดยธรรมชาติ โปรดดูรายการธุรกิจต้องห้ามของ Omise เป็นข้อมูลอ้างอิง
ตัวอย่าง: บริการเติมเงินมือถือเปิดโอกาสให้ผู้ไม่หวังดีดึงมูลค่าเงินสดออกได้ก่อนที่การคืนเงินหรือการยกเลิกจะดำเนินการได้
หากธุรกิจของคุณอยู่ในหมวดหมู่ที่มีความเสี่ยงสูง ให้ตรวจสอบ transaction log เป็นประจำเพื่อหากิจกรรมที่น่าสงสัย หากต้องการเข้าถึง log ให้เข้าสู่ระบบ Omise Dashboard และเลือก Logs จากเมนูนำทาง
6. อัปเดตอยู่เสมอ
ภัยคุกคามด้านความปลอดภัยมีการพัฒนาอย่างต่อเนื่อง Omise เผยแพร่ไลบรารีไคลเอนต์เวอร์ชันอัปเดตเป็นประจำเพื่อแก้ไขข้อบกพร่องและช่องโหว่ที่อาจเกิดขึ้น
- อัปเดตไลบรารีและปลั๊กอิน Omise ทั้งหมดให้เป็นเวอร์ชันล่าสุดอยู่เสมอ
- ตรวจสอบหน้านี้เป็นระยะเพื่อรับคำแนะนำล่าสุดเกี่ยวกับการรับชำระเงินออนไลน์อย่างปลอดภัย
- ติดตาม status.omise.co เพื่อตรวจสอบความพร้อมใช้งานของ API และการอัปเดตเหตุการณ์
7. คำถามที่พบบ่อย (FAQ)
ถาม: ทำไมฉันถึงส่งข้อมูลบัตรโดยตรงไปยังเซิร์ฟเวอร์ของตัวเองไม่ได้?
การส่งข้อมูลบัตรผ่านเซิร์ฟเวอร์ของคุณเองจะทำให้โครงสร้างพื้นฐานของคุณอยู่ในขอบเขตของการปฏิบัติตามมาตรฐาน PCI DSS ซึ่งเป็นกระบวนการรับรองที่มีค่าใช้จ่ายสูงและซับซ้อน การส่งข้อมูลบัตรโดยตรงจากอุปกรณ์ไคลเอนต์ไปยัง vault ที่เข้ารหัสของ Omise โดยใช้ Omise.js หรือ mobile SDK จะทำให้เซิร์ฟเวอร์ของคุณไม่ต้องจัดการกับข้อมูลบัตรดิบ ซึ่งช่วยลดภาระการปฏิบัติตามข้อกำหนดได้อย่างมาก
ถาม: Token แบบใช้ครั้งเดียวคืออะไร และทำงานอย่างไร?
เมื่อผู้ใช้กรอกข้อมูลบัตรในฟอร์มชำระเงิน Omise.js หรือ mobile SDK ข้อมูลนั้นจะถูกส่งโดยตรงไปยังเซิร์ฟเวอร์ของ Omise ซึ่งจะส่งคืน token แบบใช้ครั้งเดียวที่มีอายุสั้น คุณส่ง token นี้จากไคลเอนต์ไปยังเซิร์ฟเวอร์ backend และใช้สร้างการเรียกเก็บเงินผ่าน API Token ไม่สามารถนำมาใช้ซ้ำได้และใช้ได้กับร้านค้าเดียวเท่านั้น ดังนั้นหากถูกดักจับก็ไม่มีข้อมูลบัตรที่นำไปใช้ได้
ถาม: ฉันต้องใช้ HTTPS หากใช้หน้าชำระเงินแบบโฮสต์หรือไม่?
ใช่ HTTPS เป็นสิ่งจำเป็นบนหน้าชำระเงินของคุณ ไม่ว่าคุณจะโฮสต์ฟอร์มชำระเงินเองหรือใช้โซลูชันแบบโฮสต์ก็ตาม นอกจากนี้ยังจำเป็นสำหรับ URL ของ webhook endpoint ที่คุณกำหนดค่าด้วย Omise แนะนำอย่างยิ่งให้เปิดใช้งาน HTTPS ทั่วทั้งเว็บไซต์ของคุณ
ถาม: ฉันควรทำอย่างไรหาก secret key ถูกเปิดเผย?
เข้าสู่ระบบ Omise Dashboard ทันทีและ roll API key ของคุณ การ roll key จะทำให้ key ที่ถูกบุกรุกหมดอายุและออก key ใหม่ให้ นอกจากนี้ยังแนะนำให้แจ้งฝ่ายสนับสนุน Omise โดยเร็วที่สุดเพื่อให้ทีมงานสืบสวนและตรวจสอบความปลอดภัยของบัญชี
ถาม: ฉันสามารถใช้ secret key ฝั่งไคลเอนต์ได้หรือไม่?
ไม่ได้ Secret key ของคุณต้องไม่ถูกเปิดเผยในโค้ดฝั่งไคลเอนต์ repository สาธารณะ หรือสภาพแวดล้อมเบราว์เซอร์ ใช้เฉพาะ public key (pkey_) ในการผสานรวมฝั่งไคลเอนต์ Secret key (skey_) ต้องจัดเก็บไว้ในเซิร์ฟเวอร์อย่างปลอดภัย และเข้าถึงได้ผ่าน environment variable หรือบริการจัดการ secret เท่านั้น
ถาม: เครื่องมือวิเคราะห์ใดที่ใช้บนหน้าชำระเงินได้อย่างปลอดภัย?
ไม่ควรเปิดใช้งานเครื่องมือวิเคราะห์หรือติดตามของบุคคลที่สามบนหน้าชำระเงิน เครื่องมืออย่าง Google Analytics และ Mixpanel เก็บข้อมูลระดับหน้าเว็บซึ่งอาจบันทึกข้อมูลบัตรที่ละเอียดอ่อนโดยไม่ตั้งใจและส่งไปยังบุคคลที่สาม ให้ปิดการใช้งานเครื่องมือเหล่านี้ทั้งหมดบนหน้าชำระเงินและหน้ายืนยันการชำระเงิน
ถาม: จะเกิดอะไรขึ้นหาก Omise ตรวจพบธุรกรรมที่น่าสงสัยในบัญชีของฉัน?
ระบบป้องกันการฉ้อโกงของ Omise ตรวจสอบธุรกรรมอย่างต่อเนื่องโดยใช้ IP geolocation, tokenization, การตรวจสอบก่อนอนุมัติ และโมเดล machine learning แบบเรียลไทม์ หากตรวจพบกิจกรรมที่น่าสงสัย ระบบอาจบล็อกธุรกรรมและทำเครื่องหมายการเรียกเก็บเงินเป็น failed fraud check ใน dashboard ของคุณ ในกรณีที่พบกิจกรรมที่น่าสงสัยซ้ำ ๆ การโต้แย้งมากเกินไป หรือการละเมิดนโยบาย Omise อาจระงับหรือจำกัดบัญชีของคุณ ดูรายละเอียดได้ที่คู่มือการป้องกันการฉ้อโกง
ถาม: เวอร์ชัน TLS ขั้นต่ำที่ต้องรองรับคืออะไร?
คุณต้องใช้ TLS 1.2 ขึ้นไปบนเซิร์ฟเวอร์ทั้งหมดที่ประมวลผลข้อมูลการชำระเงิน รวมถึงหน้าชำระเงินและ webhook endpoint TLS 1.0 และ 1.1 ไม่ได้รับการรองรับ ตรวจสอบให้แน่ใจว่าเว็บเซิร์ฟเวอร์ของคุณได้รับการกำหนดค่าให้ใช้เฉพาะcipher suite ที่ระบุไว้ในเอกสารนี้เท่านั้น
ขั้นตอนถัดไป
- ภาพรวมความปลอดภัย — แนวคิดหลัก ได้แก่ tokenization การเข้ารหัส และการปฏิบัติตามมาตรฐาน PCI DSS
- การป้องกันการฉ้อโกง — วิธีการทำงานของระบบตรวจจับการฉ้อโกงของ Omise และการกำหนดค่า
- Omise.js — ไลบรารี JavaScript สำหรับรวบรวมข้อมูลการชำระเงินอย่างปลอดภัยในเบราว์เซอร์
- ธุรกิจต้องห้าม — ประเภทธุรกิจที่ไม่ได้รับอนุญาตให้ใช้ Omise