logologo
เริ่มต้น
คู่มือ
การพัฒนา
ปลั๊กอิน
API
English
简体中文
日本語
한국어
Deutsch
Français
Español
Português
Русский
Italiano
Türkçe
Українська
Tiếng Việt
Bahasa Indonesia
ไทย
Polski
Nederlands
Čeština
العربية
עברית
हिन्दी
Svenska
เริ่มต้น
คู่มือ
การพัฒนา
ปลั๊กอิน
API
logologo
คู่มือความปลอดภัย
นโยบาย Token

นโยบายรหัสผ่าน

นโยบายรหัสผ่าน
การล็อกผู้ใช้
การจำกัด IP
บันทึกการตรวจสอบ
การยืนยันตัวตนแบบสองปัจจัย (2FA)
การเข้ารหัสฟิลด์
Next Pageนโยบาย Token
TIP

เอกสารนี้แปลโดย AI หากมีข้อมูลที่ไม่ถูกต้อง โปรดดูเวอร์ชันภาษาอังกฤษ

#คู่มือความปลอดภัย NocoBase

NocoBase ให้ความสำคัญกับความปลอดภัยของข้อมูลและแอปพลิเคชันตั้งแต่ขั้นตอนการออกแบบฟังก์ชันไปจนถึงการพัฒนาระบบครับ แพลตฟอร์มนี้มีฟังก์ชันความปลอดภัยในตัวหลายอย่าง เช่น การยืนยันตัวตนผู้ใช้ (user authentication), การควบคุมการเข้าถึง (access control), และการเข้ารหัสข้อมูล (data encryption) พร้อมทั้งยังสามารถกำหนดค่านโยบายความปลอดภัยได้อย่างยืดหยุ่นตามความต้องการ ไม่ว่าจะเป็นการปกป้องข้อมูลผู้ใช้, การจัดการสิทธิ์การเข้าถึง, หรือการแยกสภาพแวดล้อมสำหรับการพัฒนาและใช้งานจริง (development and production environments) NocoBase ก็มีเครื่องมือและแนวทางที่ใช้งานได้จริงให้ครับ คู่มือนี้มีจุดประสงค์เพื่อให้คำแนะนำในการใช้งาน NocoBase อย่างปลอดภัย ช่วยให้ผู้ใช้สามารถปกป้องข้อมูล, แอปพลิเคชัน, และสภาพแวดล้อมของตนเอง เพื่อให้มั่นใจว่าสามารถใช้งานฟังก์ชันต่างๆ ของระบบได้อย่างมีประสิทธิภาพและปลอดภัยครับ

#การยืนยันตัวตนผู้ใช้ (User Authentication)

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

#Token Key

โดยปกติแล้ว NocoBase จะใช้ JWT (JSON Web Token) ในการตรวจสอบสิทธิ์สำหรับ API ของฝั่งเซิร์ฟเวอร์ ผู้ใช้สามารถตั้งค่าคีย์ของ Token ผ่านตัวแปรสภาพแวดล้อมของระบบที่ชื่อว่า APP_KEY ได้ครับ โปรดจัดการคีย์ของ Token ของแอปพลิเคชันอย่างเหมาะสมเพื่อป้องกันการรั่วไหลสู่ภายนอก ข้อควรระวังคือ หากมีการแก้ไข APP_KEY Token เก่าทั้งหมดจะใช้งานไม่ได้ทันทีครับ

#นโยบาย Token (Token Policy)

NocoBase รองรับการตั้งค่านโยบายความปลอดภัยสำหรับ Token ของผู้ใช้ดังต่อไปนี้ครับ

รายการตั้งค่าคำอธิบาย
อายุของเซสชัน (Session Validity)ระยะเวลาที่ยาวนานที่สุดที่ผู้ใช้สามารถล็อกอินได้ในแต่ละครั้ง ในช่วงเวลาที่เซสชันยังไม่หมดอายุ Token จะถูกอัปเดตโดยอัตโนมัติ หลังจากหมดเวลาแล้ว ผู้ใช้จะต้องล็อกอินใหม่อีกครั้ง
อายุของ Token (Token Validity)อายุการใช้งานของ API Token ที่ออกให้แต่ละครั้ง หลังจาก Token หมดอายุ หากยังอยู่ในช่วงเวลาที่เซสชันยังไม่หมดอายุและยังไม่เกินขีดจำกัดเวลาในการรีเฟรช เซิร์ฟเวอร์จะออก Token ใหม่ให้โดยอัตโนมัติเพื่อรักษาเซสชันของผู้ใช้ไว้ มิฉะนั้นผู้ใช้จะต้องล็อกอินใหม่ (Token แต่ละอันสามารถรีเฟรชได้เพียงครั้งเดียว)
ระยะเวลาที่สามารถรีเฟรช Token ที่หมดอายุได้ (Expired Token Refresh Limit)ระยะเวลาสูงสุดที่อนุญาตให้รีเฟรช Token ได้หลังจากที่หมดอายุไปแล้ว

โดยทั่วไป เราขอแนะนำให้ผู้ดูแลระบบ (administrator) ทำดังนี้ครับ

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

#การจัดเก็บ Token ฝั่ง Client (Token Client Storage)

โดยปกติแล้ว Token ของผู้ใช้จะถูกเก็บไว้ใน LocalStorage ของเบราว์เซอร์ หลังจากปิดหน้าเบราว์เซอร์แล้วเปิดใหม่อีกครั้ง หาก Token ยังไม่หมดอายุ ผู้ใช้ก็ไม่จำเป็นต้องล็อกอินใหม่ครับ

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

#นโยบายรหัสผ่าน (Password Policy)

สำหรับ Professional Edition ขึ้นไป

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

#กฎรหัสผ่าน (Password Rules)

รายการตั้งค่าคำอธิบาย
ความยาวรหัสผ่าน (Password Length)ความยาวขั้นต่ำที่ต้องการสำหรับรหัสผ่าน โดยมีความยาวสูงสุด 64 ตัวอักษร
ความซับซ้อนของรหัสผ่าน (Password Complexity)ตั้งค่าความซับซ้อนที่ต้องการสำหรับรหัสผ่าน เช่น ต้องมีตัวอักษรประเภทใดบ้าง
ไม่อนุญาตให้รหัสผ่านมีชื่อผู้ใช้ (Can't Include Username in Password)ตั้งค่าว่ารหัสผ่านสามารถมีชื่อผู้ใช้ของผู้ใช้ปัจจุบันอยู่ด้วยได้หรือไม่
จดจำประวัติรหัสผ่าน (Remember Password History)จดจำจำนวนรหัสผ่านล่าสุดที่ผู้ใช้เคยใช้ ผู้ใช้จะไม่สามารถใช้รหัสผ่านซ้ำได้เมื่อทำการเปลี่ยนรหัสผ่าน

#การตั้งค่าการหมดอายุของรหัสผ่าน (Password Expiration Configuration)

รายการตั้งค่าคำอธิบาย -
อายุของรหัสผ่าน (Password Validity Period)อายุการใช้งานของรหัสผ่านผู้ใช้ ผู้ใช้จะต้องเปลี่ยนรหัสผ่านก่อนที่จะหมดอายุเพื่อคำนวณอายุการใช้งานใหม่ หากไม่เปลี่ยนรหัสผ่านก่อนหมดอายุ จะไม่สามารถใช้รหัสผ่านเก่าล็อกอินได้ และต้องให้ผู้ดูแลระบบช่วยรีเซ็ต
หากมีการตั้งค่าวิธีการล็อกอินอื่นไว้ ผู้ใช้สามารถใช้วิธีอื่นในการล็อกอินได้
ช่องทางการแจ้งเตือนเมื่อรหัสผ่านใกล้หมดอายุ (Password Expiration Reminder Notification Channel)ภายใน 10 วันก่อนที่รหัสผ่านของผู้ใช้จะหมดอายุ ระบบจะส่งการแจ้งเตือนทุกครั้งที่ผู้ใช้ล็อกอิน -

#ความปลอดภัยในการล็อกอินด้วยรหัสผ่าน (Password Login Security)

รายการตั้งค่าคำอธิบาย -
จำนวนครั้งสูงสุดที่พยายามล็อกอินด้วยรหัสผ่านผิด (Maximum Invalid Password Login Attempts)ตั้งค่าจำนวนครั้งสูงสุดที่ผู้ใช้สามารถพยายามล็อกอินได้ภายในช่วงเวลาที่กำหนด -
ช่วงเวลาสูงสุดสำหรับการนับจำนวนครั้งที่ล็อกอินผิด (วินาที) (Maximum Invalid Password Login Time Interval (seconds))ตั้งค่าช่วงเวลาสำหรับการนับจำนวนครั้งสูงสุดที่ผู้ใช้ล็อกอินผิดพลาด หน่วยเป็นวินาที -
ระยะเวลาล็อกบัญชี (วินาที) (Lock Time (seconds))ตั้งค่าระยะเวลาที่จะล็อกบัญชีผู้ใช้หลังจากที่ผู้ใช้พยายามล็อกอินด้วยรหัสผ่านผิดเกินขีดจำกัด (0 หมายถึงไม่จำกัด)
ในช่วงเวลาที่ผู้ใช้ถูกล็อก จะไม่สามารถเข้าถึงระบบด้วยวิธีการยืนยันตัวตนใดๆ ได้เลย รวมถึง API keys ด้วย

โดยทั่วไป เราขอแนะนำดังนี้ครับ

  • ตั้งกฎรหัสผ่านที่คาดเดาได้ยาก เพื่อลดความเสี่ยงที่รหัสผ่านจะถูกคาดเดาหรือถูกเจาะด้วยวิธี brute force
  • ตั้งค่าอายุของรหัสผ่านที่เหมาะสม เพื่อบังคับให้ผู้ใช้เปลี่ยนรหัสผ่านเป็นประจำ
  • ใช้การตั้งค่าจำนวนครั้งที่ล็อกอินผิดและช่วงเวลาร่วมกัน เพื่อจำกัดการพยายามล็อกอินด้วยรหัสผ่านความถี่สูงในระยะเวลาสั้นๆ และป้องกันการเจาะรหัสผ่านแบบ brute-force
  • หากอยู่ในสถานการณ์ที่ต้องการความปลอดภัยสูง สามารถตั้งค่าระยะเวลาล็อกบัญชีผู้ใช้ที่เหมาะสมเมื่อพยายามล็อกอินเกินขีดจำกัดได้ แต่ต้องระวังว่าการตั้งค่าเวลาล็อกอาจถูกนำไปใช้ในทางที่ผิด ผู้โจมตีอาจจงใจป้อนรหัสผ่านผิดหลายครั้งสำหรับบัญชีเป้าหมาย เพื่อบังคับให้บัญชีถูกล็อกและไม่สามารถใช้งานได้ตามปกติ ในการใช้งานจริง สามารถใช้มาตรการอื่นๆ ร่วมด้วย เช่น การจำกัด IP, การจำกัดความถี่ในการเรียกใช้ API เพื่อป้องกันการโจมตีประเภทนี้
  • เปลี่ยนชื่อผู้ใช้, อีเมล, และรหัสผ่านเริ่มต้นของ root ใน NocoBase เพื่อป้องกันการถูกนำไปใช้ในทางที่ผิด
  • เนื่องจากการหมดอายุของรหัสผ่านหรือการล็อกบัญชีจะทำให้ไม่สามารถเข้าระบบได้ รวมถึงบัญชีผู้ดูแลระบบด้วย ขอแนะนำให้ตั้งค่าบัญชีผู้ใช้หลายบัญชีในระบบที่มีสิทธิ์ในการรีเซ็ตรหัสผ่านและปลดล็อกผู้ใช้ได้

#การล็อกผู้ใช้ (User Lockout)

สำหรับ Professional Edition ขึ้นไป, รวมอยู่ในปลั๊กอินนโยบายรหัสผ่าน

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

#API Keys

NocoBase รองรับการเรียกใช้ API ของระบบผ่าน API keys ผู้ใช้สามารถเพิ่ม API keys ได้ในการตั้งค่าปลั๊กอิน API Keys ครับ

  • โปรดผูกบทบาท (role) ที่ถูกต้องกับ API key และตรวจสอบให้แน่ใจว่าสิทธิ์ที่เกี่ยวข้องกับบทบาทนั้นถูกกำหนดค่าอย่างถูกต้อง
  • ป้องกันไม่ให้ API keys รั่วไหลสู่ภายนอกระหว่างการใช้งาน
  • โดยทั่วไป เราขอแนะนำให้ผู้ใช้ตั้งค่าอายุการใช้งานสำหรับ API keys และหลีกเลี่ยงการใช้ตัวเลือก "ไม่มีวันหมดอายุ" (Never expire)
  • หากพบว่า API key ถูกใช้งานอย่างผิดปกติและอาจมีความเสี่ยงที่จะรั่วไหล ผู้ใช้สามารถลบ API key ที่เกี่ยวข้องเพื่อทำให้ใช้งานไม่ได้

#Single Sign-On (SSO)

ปลั๊กอินเชิงพาณิชย์ (Commercial Plugin)

NocoBase มีปลั๊กอินการยืนยันตัวตนแบบ SSO ให้เลือกมากมาย รองรับโปรโตคอลหลักหลายอย่าง เช่น OIDC, SAML 2.0, LDAP, และ CAS ในขณะเดียวกัน NocoBase ยังมีอินเทอร์เฟซส่วนขยายสำหรับวิธีการยืนยันตัวตนที่สมบูรณ์ ซึ่งสามารถรองรับการพัฒนาและเชื่อมต่อกับประเภทการยืนยันตัวตนอื่นๆ ได้อย่างรวดเร็ว คุณสามารถเชื่อมต่อ IdP ที่มีอยู่กับ NocoBase ได้อย่างง่ายดาย เพื่อจัดการข้อมูลประจำตัวของผู้ใช้แบบรวมศูนย์บน IdP เพื่อเพิ่มความปลอดภัย

#การยืนยันตัวตนแบบสองปัจจัย (Two-factor authentication)

Enterprise Edition

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

#การควบคุมการเข้าถึงด้วย IP (IP Access Control)

Enterprise Edition

NocoBase รองรับการตั้งค่าบัญชีดำ (blacklist) หรือบัญชีขาว (whitelist) สำหรับ IP ที่เข้าถึงของผู้ใช้

  • ในสภาพแวดล้อมที่ต้องการความปลอดภัยสูง คุณสามารถตั้งค่า IP whitelist เพื่ออนุญาตให้เฉพาะ IP หรือช่วง IP ที่กำหนดเท่านั้นที่สามารถเข้าถึงระบบได้ เพื่อจำกัดการเชื่อมต่อจากเครือข่ายภายนอกที่ไม่ได้รับอนุญาตและลดความเสี่ยงด้านความปลอดภัยตั้งแต่ต้นทาง
  • ภายใต้เงื่อนไขการเข้าถึงเครือข่ายสาธารณะ หากผู้ดูแลระบบตรวจพบการเข้าถึงที่ผิดปกติ สามารถตั้งค่า IP blacklist เพื่อบล็อกที่อยู่ IP ที่เป็นอันตรายที่รู้จัก หรือการเข้าถึงจากแหล่งที่น่าสงสัย ซึ่งช่วยลดภัยคุกคามด้านความปลอดภัย เช่น การสแกนที่เป็นอันตรายและการเจาะรหัสผ่านแบบ brute force
  • มีการบันทึกประวัติ (log) สำหรับคำขอเข้าถึงที่ถูกปฏิเสธ

#การควบคุมสิทธิ์ (Permission Control)

ด้วยการตั้งค่าบทบาท (roles) ที่แตกต่างกันในระบบ และการกำหนดสิทธิ์ที่สอดคล้องกันให้กับบทบาทเหล่านั้น คุณจะสามารถควบคุมสิทธิ์การเข้าถึงทรัพยากรของผู้ใช้ได้อย่างละเอียด ผู้ดูแลระบบจำเป็นต้องกำหนดค่าอย่างสมเหตุสมผลตามความต้องการของสถานการณ์จริง เพื่อลดความเสี่ยงของการรั่วไหลของทรัพยากรระบบ

#ผู้ใช้ Root (Root User)

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

  • INIT_ROOT_USERNAME - ชื่อผู้ใช้ root
  • INIT_ROOT_EMAIL - อีเมลผู้ใช้ root
  • INIT_ROOT_PASSWORD - รหัสผ่านผู้ใช้ root โปรดตั้งรหัสผ่านที่คาดเดาได้ยาก

ในระหว่างการใช้งานระบบในภายหลัง ขอแนะนำให้ผู้ใช้ตั้งค่าและใช้บัญชีผู้ดูแลระบบอื่นๆ และหลีกเลี่ยงการใช้ผู้ใช้ root ในการดำเนินการกับแอปพลิเคชันโดยตรงครับ

#บทบาทและสิทธิ์ (Roles and Permissions)

NocoBase ควบคุมสิทธิ์การเข้าถึงทรัพยากรของผู้ใช้โดยการตั้งค่าบทบาทในระบบ, การให้สิทธิ์แก่บทบาทต่างๆ, และการผูกผู้ใช้เข้ากับบทบาทที่สอดคล้องกัน ผู้ใช้แต่ละคนสามารถมีได้หลายบทบาท และผู้ใช้สามารถสลับบทบาทเพื่อดำเนินการกับทรัพยากรจากมุมมองที่แตกต่างกันได้ หากติดตั้งปลั๊กอินแผนก (department plugin) คุณยังสามารถผูกบทบาทกับแผนกได้ ซึ่งจะทำให้ผู้ใช้มีบทบาทที่ผูกอยู่กับแผนกของตน

#สิทธิ์การกำหนดค่าระบบ (System Configuration Permissions)

สิทธิ์การกำหนดค่าระบบประกอบด้วยการตั้งค่าต่อไปนี้:

  • อนุญาตให้เข้าถึงหน้าจอการกำหนดค่าหรือไม่
  • อนุญาตให้ติดตั้ง, เปิดใช้งาน, และปิดใช้งานปลั๊กอินหรือไม่
  • อนุญาตให้กำหนดค่าปลั๊กอินหรือไม่
  • อนุญาตให้ล้างแคชและรีสตาร์ทแอปพลิเคชันหรือไม่
  • สิทธิ์การกำหนดค่าสำหรับแต่ละปลั๊กอิน

#สิทธิ์เมนู (Menu Permissions)

สิทธิ์เมนูใช้เพื่อควบคุมสิทธิ์ของผู้ใช้ในการเข้าถึงหน้าเมนูต่างๆ ทั้งบนเดสก์ท็อปและมือถือ

#สิทธิ์ข้อมูล (Data Permissions)

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

#การควบคุมระดับส่วนกลาง (Global Control)

#การควบคุมระดับตารางและระดับฟิลด์ (Table-level, Field-level Control)

#การควบคุมขอบเขตข้อมูล (Data Scope Control)

ตั้งค่าขอบเขตของข้อมูลที่ผู้ใช้สามารถดำเนินการได้ โปรดทราบว่าขอบเขตข้อมูลที่นี่แตกต่างจากขอบเขตข้อมูลที่กำหนดค่าในบล็อก (block) ขอบเขตข้อมูลที่กำหนดค่าในบล็อกมักใช้สำหรับการกรองข้อมูลฝั่ง front-end เท่านั้น หากคุณต้องการควบคุมสิทธิ์การเข้าถึงทรัพยากรข้อมูลของผู้ใช้อย่างเข้มงวด คุณต้องกำหนดค่าที่นี่ ซึ่งจะถูกควบคุมโดยฝั่งเซิร์ฟเวอร์

#ความปลอดภัยของข้อมูล (Data Security)

ในระหว่างกระบวนการจัดเก็บและสำรองข้อมูล NocoBase มีกลไกที่มีประสิทธิภาพเพื่อรับรองความปลอดภัยของข้อมูล

#การจัดเก็บรหัสผ่าน (Password Storage)

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

#ตัวแปรสภาพแวดล้อมและคีย์ (Environment Variables and Keys)

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

WARNING

ตามค่าเริ่มต้น คีย์จะถูกเข้ารหัสโดยใช้อัลกอริทึม AES-256-CBC NocoBase จะสร้างคีย์เข้ารหัส 32 บิตโดยอัตโนมัติและบันทึกไว้ที่ storage/.data/environment/aes_key.dat ผู้ใช้ควรเก็บไฟล์คีย์อย่างเหมาะสมเพื่อป้องกันไม่ให้ถูกขโมย หากคุณต้องการย้ายข้อมูล ไฟล์คีย์จะต้องถูกย้ายไปด้วย

#การจัดเก็บไฟล์ (File Storage)

หากคุณต้องการจัดเก็บไฟล์ที่ละเอียดอ่อน ขอแนะนำให้ใช้บริการจัดเก็บข้อมูลบนคลาวด์ที่เข้ากันได้กับโปรโตคอล S3 และใช้ปลั๊กอินเชิงพาณิชย์ File storage: S3 (Pro) เพื่อเปิดใช้งานการอ่านและเขียนไฟล์แบบส่วนตัว หากคุณต้องการใช้งานในสภาพแวดล้อมเครือข่ายภายใน ขอแนะนำให้ใช้แอปพลิเคชันจัดเก็บข้อมูลที่รองรับการติดตั้งแบบส่วนตัวและเข้ากันได้กับโปรโตคอล S3 เช่น MinIO

#การสำรองข้อมูลแอปพลิเคชัน (Application Backup)

เพื่อความปลอดภัยของข้อมูลแอปพลิเคชันและหลีกเลี่ยงการสูญเสียข้อมูล เราขอแนะนำให้คุณสำรองข้อมูลฐานข้อมูลเป็นประจำ

ผู้ใช้เวอร์ชันโอเพนซอร์สสามารถอ้างอิงถึง https://www.nocobase.com/en/blog/nocobase-backup-restore เพื่อสำรองข้อมูลด้วยเครื่องมือฐานข้อมูล นอกจากนี้เรายังแนะนำให้คุณเก็บไฟล์สำรองข้อมูลอย่างเหมาะสมเพื่อป้องกันการรั่วไหลของข้อมูล

ผู้ใช้เวอร์ชัน Professional ขึ้นไปสามารถใช้ตัวจัดการการสำรองข้อมูล (backup manager) สำหรับการสำรองข้อมูลได้ ซึ่งมีคุณสมบัติดังต่อไปนี้:

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

#ความปลอดภัยของสภาพแวดล้อมการทำงาน (Runtime Environment Security)

การติดตั้ง NocoBase อย่างถูกต้องและรับรองความปลอดภัยของสภาพแวดล้อมการทำงานเป็นหนึ่งในกุญแจสำคัญในการรับรองความปลอดภัยของแอปพลิเคชัน NocoBase

#การติดตั้งแบบ HTTPS (HTTPS Deployment)

เพื่อป้องกันการโจมตีแบบ man-in-the-middle เราขอแนะนำให้คุณเพิ่มใบรับรอง SSL/TLS ให้กับไซต์แอปพลิเคชัน NocoBase ของคุณ เพื่อรับรองความปลอดภัยของข้อมูลระหว่างการส่งผ่านเครือข่าย

#การเข้ารหัสการส่งข้อมูล API (API Transport Encryption)

Enterprise Edition

ในสภาพแวดล้อมที่ต้องการความปลอดภัยของข้อมูลที่เข้มงวดยิ่งขึ้น NocoBase รองรับการเปิดใช้งานการเข้ารหัสการส่งข้อมูล API เพื่อเข้ารหัสเนื้อหาคำขอและการตอบกลับของ API หลีกเลี่ยงการส่งข้อมูลแบบ clear text และเพิ่มความยากในการถอดรหัสข้อมูล

#การติดตั้งแบบส่วนตัว (Private Deployment)

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

  1. ดาวน์โหลดปลั๊กอินเชิงพาณิชย์โดยอัตโนมัติผ่านแพลตฟอร์ม NocoBase Service
  2. การตรวจสอบและเปิดใช้งานแอปพลิเคชันเวอร์ชันเชิงพาณิชย์ออนไลน์

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

NocoBase รองรับการติดตั้งภายในอินทราเน็ตอย่างสมบูรณ์ อ้างอิงได้จาก

  • https://www.nocobase.com/en/blog/load-docker-image
  • อัปโหลดปลั๊กอินไปยังไดเรกทอรีปลั๊กอินเพื่อติดตั้งและอัปเกรด

#การแยกสภาพแวดล้อมหลายแห่ง (Multiple Environment Isolation)

สำหรับ Professional Edition ขึ้นไป

ในการใช้งานจริง เราขอแนะนำให้ผู้ใช้ระดับองค์กรแยกสภาพแวดล้อมการทดสอบและการใช้งานจริงออกจากกัน เพื่อรับรองความปลอดภัยของข้อมูลแอปพลิเคชันและสภาพแวดล้อมการทำงานในสภาพแวดล้อมการใช้งานจริง ด้วยปลั๊กอินการจัดการการย้ายข้อมูล (migration management plugin) คุณสามารถย้ายข้อมูลแอปพลิเคชันระหว่างสภาพแวดล้อมต่างๆ ได้

#การตรวจสอบและติดตาม (Auditing and Monitoring)

#บันทึกการตรวจสอบ (Audit Logs)

Enterprise Edition

ฟังก์ชันบันทึกการตรวจสอบของ NocoBase จะบันทึกกิจกรรมของผู้ใช้ในระบบ โดยการบันทึกการดำเนินการที่สำคัญและพฤติกรรมการเข้าถึงของผู้ใช้ ผู้ดูแลระบบสามารถ:

  • ตรวจสอบข้อมูลการเข้าถึงของผู้ใช้ เช่น IP, อุปกรณ์, และเวลาดำเนินการ เพื่อตรวจจับพฤติกรรมที่ผิดปกติได้ทันท่วงที
  • ติดตามประวัติการดำเนินการของทรัพยากรข้อมูลในระบบ

#บันทึกแอปพลิเคชัน (Application Logs)

NocoBase มีบันทึก (log) หลายประเภทเพื่อช่วยให้ผู้ใช้เข้าใจสถานะการทำงานและบันทึกพฤติกรรมของระบบ เพื่อให้สามารถระบุและค้นหาปัญหาระบบได้ทันท่วงที รับรองความปลอดภัยและความสามารถในการควบคุมของระบบจากมิติต่างๆ ประเภทของบันทึกหลักๆ ได้แก่:

  • บันทึกคำขอ (Request log): บันทึกคำขอ API รวมถึง URL ที่เข้าถึง, เมธอด HTTP, พารามิเตอร์คำขอ, เวลาตอบสนอง, และรหัสสถานะ
  • บันทึกระบบ (System log): บันทึกเหตุการณ์การทำงานของแอปพลิเคชัน รวมถึงการเริ่มต้นบริการ, การเปลี่ยนแปลงการกำหนดค่า, ข้อความแสดงข้อผิดพลาด, และการดำเนินการที่สำคัญ
  • บันทึก SQL (SQL log): บันทึกคำสั่งการดำเนินการของฐานข้อมูลและเวลาในการดำเนินการ ครอบคลุมการดำเนินการต่างๆ เช่น การสืบค้น, การอัปเดต, การแทรก, และการลบ
  • บันทึกเวิร์กโฟลว์ (Workflow log): บันทึกการทำงานของเวิร์กโฟลว์ รวมถึงเวลาในการดำเนินการ, ข้อมูลการทำงาน, และข้อมูลข้อผิดพลาด