การรักษาความปลอดภัย

เอกสารนี้ให้ข้อมูลรหัสผ่าน, การยืนยันตัวตน, การกำหนดค่า SSL, การแบ่งเครือข่าย, การสื่อสารที่มีการเข้ารหัส, ส่วนหัว HTTP และโปรโตคอล TLS เว็บเซิร์ฟเวอร์ตามที่เกี่ยวข้องกับไคลเอนต์ WhatsApp Business API

การกำหนดค่า SSL

สิทธิ์การเข้าถึงไคลเอนต์ WhatsApp Business API ต้องมี HTTPS

ไคลเอนต์ WhatsApp Business API จะสร้างใบรับรองแบบลงนามด้วยตนเองตามค่าเริ่มต้นเมื่อสร้างไคลเอนต์ขึ้นมา คุณอาจต้องใช้ใบรับรอง Certification Authority (CA) สำหรับสร้างใบรับรองแบบลงนามด้วยตนเองเพื่อตรวจสอบยืนยันตำแหน่งข้อมูลไคลเอนต์ WhatsApp Business API และเพื่อไม่ให้พบคำเตือนความไว้วางใจของใบรับรอง หรืออาจอัพโหลดใบรับรอง CA แทนใบรับรองแบบลงนามด้วยตนเองก็ได้ ดูเอกสารประกอบเกี่ยวกับใบรับรอง CA เพื่อดูข้อมูลเพิ่มเติม

เนื่องจาก Webhooks กำหนดให้ต้องใช้ HTTPS สำหรับการเรียกกลับเช่นเดียวกัน คุณสามารถใช้ใบรับรอง CA ของตนเองเพื่อป้องกันไม่ให้แอพพลิเคชั่นพบข้อผิดพลาด SSL เมื่อพยายามที่จะใช้การดำเนินการ POST กับ Webhook ที่กำหนดค่าแล้ว ดูข้อมูลเพิ่มเติมที่เอกสารประกอบเกี่ยวกับใบรับรอง CA ของ Webhooks

การแบ่งเครือข่าย

เราขอแนะนำให้คุณโฮสต์โหนด Webapp และ Coreapp ในเครือข่ายที่แบ่งส่วนแยกไว้ และแสดงโหนดเฉพาะกับบริการที่จำเป็นเท่านั้น

โหนด Webapp ควรแสดง API และตำแหน่งข้อมูลการดูแลจัดการเว็บให้กับเครือข่ายที่มีการโฮสต์ไคลเอนต์ WhatsApp Business API และเวิร์กสเตชั่นของเจ้าหน้าที่บริหารจัดการเท่านั้น

โหนด Coreapp ควรแสดงบริการการสื่อสารให้กับโหนด Webapp เท่านั้น และในการตั้งค่าการเชื่อมต่อหลายจุด ให้แสดงบริการการควบคุมเฉพาะกับโหนด Coreapp เท่านั้น

การสื่อสารที่มีการเข้ารหัส

การสื่อสารจาก Webapp ไปยัง Coreapp

เราขอแนะนำให้คุณตั้งตัวแปรสภาพแวดล้อม WA_SECRET ทั้งในคอนเทนเนอร์ Coreapp และ Webapp เพื่อให้แน่ใจว่าการสื่อสารระหว่างทั้งสองรายการนี้จะได้รับการเข้ารหัส

หมายเหตุ: โฮสต์ Coreapp และ Webapp ต้องมีการซิงค์นาฬิกาไว้ การเข้ารหัสจึงจะทำงานได้อย่างสมบูรณ์ หากเวลาไม่ตรงกัน ตัวป้องกันการเล่นซ้ำ (หรือการตรวจสอบประทับเวลาโดยมีระยะเวลาผ่อนผัน 10 วินาที) อาจเกิดการสื่อสารล้มเหลว

การสื่อสารของฐานข้อมูล

คุณสามารถกำหนดพารามิเตอร์ SSL ที่ใช้ในการเข้ารหัสการเชื่อมต่อฐานข้อมูลเพื่อปกป้องข้อมูลระหว่างการโอนย้าย

ก่อนหน้านี้ การเข้ารหัสจะทำได้เฉพาะสำหรับการเชื่อมต่อจาก Coreapp ไปยังฐานข้อมูลเท่านั้นโดยใช้ตัวแปรสภาพแวดล้อม WA_DB_CONNECTION_OPTION เนื่องจากก่อนหน้าจะมีเพียง Coreapp เท่านั้นที่มีสิทธิ์เข้าถึงฐานข้อมูล อย่างไรก็ตาม คอนเทนเนอร์ Webapp จะมีสิทธิ์เข้าถึงฐานข้อมูลด้วย คุณจึงควรเข้ารหัสการเชื่อมต่อจาก Webapp ไปยังฐานข้อมูลด้วยเช่นกัน สำหรับการดำเนินการนี้ การกำหนดค่า SSL จะมีการเปลี่ยนแปลงเพื่อให้มีสถานะเป็นกลางซึ่งจะเอื้อให้คอนเทนเนอร์ทั้งหมดเข้าถึงได้ การเข้ารหัสสามารถกำหนดค่าได้โดยใช้ตัวแปรสภาพแวดล้อมต่อไปนี้

  • WA_DB_SSL_KEY
  • WA_DB_SSL_CERT
  • WA_DB_SSL_CA
  • WA_DB_SSL_VERIFY

WA_DB_SSL_VERIFY สามารถกำหนดค่าได้เพื่อตรวจสอบยืนยันข้อมูลระบุตัวตนของเซิร์ฟเวอร์ พารามิเตอร์นี้จำเป็นต่อการตั้งค่าการพัฒนาภายในบางส่วนและขอแนะนำอย่างยิ่งไม่ให้คุณปิดการตรวจสอบยืนยัน หากไม่ได้ตั้งค่าพารามิเตอร์นี้ การตรวจสอบยืนยันจะเปิดไว้ตามค่าเริ่มต้น หากต้องการปิดการตรวจสอบยืนยัน ให้ระบุดังนี้

WA_DB_SSL_VERIFY=0

หมายเหตุ:WA_DB_SSL_VERIFY ใช้งานได้เฉพาะกับ Webapp เท่านั้น

ระบบจะยังคงรองรับ WA_DB_CONNECTION_OPTION ต่อไปในโหมดที่เลิกใช้งานและจะใช้เพื่อเข้ารหัสการเชื่อมต่อ Coreapp เข้ากับฐานข้อมูล เพื่อให้ใช้งานร่วมกับรุ่นก่อนหน้าได้ เราขอแนะนำอย่างยิ่งให้คุณเปลี่ยนมาใช้พารามิเตอร์ใหม่เหล่านี้

ไฟล์ทั้งหมดที่กำหนดค่าในตัวแปรสภาพแวดล้อม Key, Cert และ CA ต้องสามารถเข้าถึงได้ภายในคอนเทนเนอร์ หากต้องการดำเนินการนี้ คุณสามารถสร้างไดเรกทอรี certs สำหรับปริมาณข้อมูลที่มีสิทธิ์การอนุญาตที่เหมาะสม ปริมาณข้อมูลมักจะได้รับการกำหนดไว้เป็น /usr/local/waent/data และไดเรกทอรีใบรับรองจะสามารถเข้าถึงได้ที่ /usr/local/waent/data/certs ภายในคอนเทนเนอร์

เว็บเซิร์ฟเวอร์ (TLS)

โปรโตคอล TLS และรหัสลับจะได้รับการกำหนดค่าตามการกำหนดค่าที่ Mozilla แนะนำ Webapp รองรับโปรไฟล์ 3 แบบได้แก่ MODERN (ค่าเริ่มต้น), INTERMEDIATE และ OLD

เราขอแนะนำให้คงการกำหนดค่าเริ่มต้นเอาไว้เพื่อการรักษาความปลอดภัยที่ดียิ่งขึ้น อย่างไรก็ตาม คุณสามารถเลือกลดระดับโปรไฟล์ลงได้โดยใช้ตัวแปรสภาพแวดล้อม WA_WEB_SECURITY_LEVEL

ส่วนหัว HTTP

ระบบรองรับส่วนหัว HTTP ต่อไปนี้สำหรับผู้ดูแลเว็บ แต่ไม่ใช่สำหรับตำแหน่งข้อมูล API และจะขึ้นอยู่กับเบราว์เซอร์ที่ใช้ด้วยเช่นกัน

ชื่อคำอธิบาย

X-Content-Security-policy

ระบุนโยบายที่จะอนุญาตเฉพาะสคริปต์จากโดเมนเดียวกันให้ทำงานบนผู้ดูแลเว็บได้

X-Frame-Options

ส่วนหัวไม่อนุญาตให้โดเมนใดๆ รวมหน้าผู้ดูแลเว็บเป็น iframe

X-XSS

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

X-Content-Type-Options

รับรองว่าประเภทเนื้อหาที่เซิร์ฟเวอร์ได้รับเป็นรายการเดียวกับที่เซิร์ฟเวอร์ร้องขอ

Strict-Transport-Security

รับรองว่าผู้ดูแลเว็บจะเข้าถึงได้ผ่าน HTTPS เท่านั้น