Security · สำหรับมือใหม่

กันข้อมูลรั่ว กันพัง

ระบบธุรกิจเก็บของมีค่า — ข้อมูลลูกค้า เงิน ภาษี เงินเดือน. รั่วหรือพังทีเสียหายหนัก + ผิดกฎหมาย. หน้านี้สรุปพื้นฐานความปลอดภัยที่ต้องรู้ก่อนสั่ง AI สร้างระบบ ซ้ายอธิบาย ขวาเทียบ ✗ vs ✓

ทำไมเรื่องนี้สำคัญ

สั่ง AI สร้างระบบได้ไว แต่ ความปลอดภัยไม่ได้มาเอง— ต้องตั้งใจใส่. มือใหม่มักโฟกัสแค่ "ใช้งานได้" แล้วลืมว่าระบบเก็บข้อมูลลูกค้าจริง เงินจริง. หน้านี้ไม่ใช่ศัพท์เทคนิคยาก ๆ แต่เป็น 6 หลักง่าย ๆที่กันความเสียหายหนัก ๆ ได้ — ใช้เป็นเช็คลิสต์ตอนสั่ง AI และตอนตรวจงาน

ทำไมต้องแคร์แยกข้อมูลบริษัทสิทธิ์เท่าที่จำเป็นเก็บ secret/keyเงิน/ภาษีห้าม AI เดาสำรอง + audit
ทำไมต้องแคร์ why security matters

ระบบธุรกิจไม่ใช่เกม — มันเก็บ ของจริงที่มีค่า: ชื่อ-เบอร์-ที่อยู่ลูกค้า ยอดเงิน ภาษี เงินเดือนพนักงาน. ถ้ารั่วออกไป = ลูกค้าโดนมิจฉาชีพ, เสียความเชื่อใจ, และ ผิดกฎหมาย PDPA(พ.ร.บ.คุ้มครองข้อมูลส่วนบุคคล) มีโทษปรับจริง. มองความปลอดภัยเหมือน "ล็อกร้าน" — ไม่ใช่ของเสริม แต่เป็นพื้นฐาน

ตัวอย่างจริงร้านทำระบบ CRM เก็บเบอร์ลูกค้า 3,000 ราย แล้วเผลอเปิดให้เข้าดูได้โดยไม่ต้องล็อกอิน — ลิงก์หลุด มิจฉาชีพดูดเบอร์ไปโทรหลอก ลูกค้าเสียเงิน ร้านโดนร้องเรียน PDPA + เสียลูกค้าทั้งหมด
ต้องคิดเสมอ
ถ้าข้อมูลนี้หลุด ใครเดือดร้อน? เสียหายแค่ไหน? — ยิ่งหนัก ยิ่งต้องกันแน่น
อย่าคิดว่า
"ร้านเล็ก ไม่มีใครมาแฮ็กหรอก" — บอตสแกนหาช่องโหว่ทั้งอินเทอร์เน็ตอัตโนมัติ ไม่เลือกขนาด
สิ่งที่ระบบต้องปกป้อง
👤
ข้อมูลส่วนตัวลูกค้า
ชื่อ เบอร์ ที่อยู่ อีเมล เลขบัตร — ตัว PDPA คุ้มครองโดยตรง
💰
ข้อมูลการเงิน
ยอดขาย ใบกำกับ บัญชีธนาคาร ยอดหนี้
📑
ภาษี / เงินเดือน
ภงด. เงินเดือนรายคน เลขบัตรประชาชน — ลับสุด
🔑
กุญแจระบบ
รหัสผ่าน · key เชื่อม API · token — หลุดทีคุมระบบได้ทั้งหมด
แยกข้อมูลแต่ละบริษัท tenant isolation

ถ้าระบบเดียวให้หลายบริษัทใช้ร่วมกัน (multi-tenant) — บริษัท A ต้อง ไม่มีทางเห็นข้อมูลบริษัท B เด็ดขาด. เหมือนคอนโดรวมตึก แต่ละห้องล็อกแยก เพื่อนบ้านเข้าห้องเราไม่ได้แม้จะอยู่ตึกเดียวกัน. ทุก ๆ การอ่านข้อมูลต้องถาม "เป็นของบริษัทไหน" ก่อนเสมอ ไม่ใช่เชื่อว่าหน้าจอกรองให้แล้ว

ตัวอย่างจริงระบบบัญชีให้ 2 บริษัทใช้ร่วมกัน. พนักงานบริษัท A เปลี่ยนเลขใน URL จาก invoice/100เป็น invoice/101แล้วเห็นใบกำกับของบริษัท B! เพราะระบบไม่เช็คว่าใบนี้เป็นของบริษัทที่ล็อกอินอยู่ — นี่คือข้อมูลรั่วร้ายแรง
ทำ
ทุก query แนบ เงื่อนไขบริษัทเสมอ (company_id = คนที่ล็อกอิน) · เช็คที่หลังบ้าน ไม่ใช่แค่ซ่อนปุ่มหน้าบ้าน
อย่า
เชื่อว่า "หน้าจอมันกรองให้แล้ว" — คนแก้ URL/ส่ง request ตรงได้ ต้องกันที่ต้นทางข้อมูล
แต่ละบริษัทเห็นแค่ของตัวเอง
บริษัท A
ลูกค้า 120 ราย
ใบกำกับ #A-001…
เงินเดือนทีม A
บริษัท B
ลูกค้า 80 ราย
ใบกำกับ #B-001…
เงินเดือนทีม B
A ⟷ B มองข้ามกันไม่ได้
ทุกการอ่านถาม "บริษัทไหน?"ก่อน — A ดึงข้อมูลได้แต่ของ A เท่านั้น แม้รู้เลข id ของ B ก็เปิดไม่ได้
ให้สิทธิ์เท่าที่จำเป็น least privilege

ทุกคน เห็นและทำได้เฉพาะที่งานตัวเองต้องใช้ไม่ใช่เปิดหมดทุกอย่างให้ทุกคน. พนักงานขายไม่ต้องเห็นเงินเดือนเพื่อน, พนักงานคลังไม่ต้องเปิดงบการเงิน. และที่สำคัญ — พอลาออกต้องปิดสิทธิ์ทันทีไม่ใช่ปล่อยให้ล็อกอินได้ต่อ

ตัวอย่างจริงพนักงานลาออกไปอยู่คู่แข่ง แต่บัญชียังเปิดอยู่ — เข้ามาดึงรายชื่อลูกค้าทั้งหมดออกไป. ถ้าตั้งระบบให้ ปิดสิทธิ์อัตโนมัติวันสิ้นสุดงานเหตุนี้ไม่เกิด
ทำ
แบ่ง บทบาท(เจ้าของ/หัวหน้า/พนักงาน) · เปิดเมนูตามบทบาท · ปิดบัญชีทันทีเมื่อลาออก
อย่า
ให้ทุกคนเป็น admin เพราะ "สะดวกดี" — พลาดทีเดียวเสียหายทั้งระบบ
✗ ทุกคนเห็นทุกอย่าง
ไม่แบ่งสิทธิ์พนักงานขายเปิดดู เงินเดือนทุกคน · งบการเงิน · ตั้งค่าระบบได้หมด — พลาด/เจตนาร้ายทีเสียหายหนัก
✓ เห็นเท่าที่ต้องใช้
แบ่งตามบทบาทขาย:เห็นลูกค้า+ออเดอร์ของตัว
หัวหน้า:เห็นทีม+อนุมัติ
เจ้าของ:เห็นการเงิน+ตั้งค่า
ลาออกวันสิ้นสุดงาน → ปิดบัญชีอัตโนมัติเข้าระบบไม่ได้อีก
เก็บ secret / key ให้ปลอดภัย secrets & API keys

Secret= กุญแจลับของระบบ: รหัสฐานข้อมูล · key เชื่อม API (เช่น key ส่ง LINE/AI) · token. ของพวกนี้ ห้ามอยู่ในโค้ดฝั่งหน้าบ้าน(ที่ผู้ใช้เปิดดูได้) และ ห้าม commit ขึ้น git สาธารณะเด็ดขาด — ต้องเก็บไว้ใน "ที่เก็บ secret" ของระบบฝั่งหลังบ้านเท่านั้น

ตัวอย่างจริงมือใหม่ก๊อป key ของ AI ใส่ตรง ๆ ในโค้ดแล้ว push ขึ้น GitHub สาธารณะ. ภายในไม่กี่ชั่วโมง บอตสแกนเจอ เอา key ไปใช้ยิงค่าใช้จ่าย บิลพุ่งหลักหมื่นทั้งที่ไม่ได้ใช้เอง
ทำ
เก็บ key ใน secret / environment variableฝั่งหลังบ้าน · ใส่ไฟล์ลับใน .gitignore· ถ้าหลุดให้ เพิกถอน (revoke) แล้วออกใหม่ทันที
อย่า
ฝัง key ในโค้ดหน้าเว็บ/แอป · commit ไฟล์ .env ขึ้น git · ส่ง key ทางแชตแล้วปล่อยค้าง
✗ key ในโค้ด / หลุด git
ฝังในหน้าบ้านเขียน key ตรง ๆ ในโค้ดที่เปิดดูได้
const apiKey = "sk-live-aB3x..."
push ขึ้น git สาธารณะcommit ไฟล์ .env ที่มีรหัส → ใครก็โหลดได้
✓ เก็บใน secret
หลังบ้านเรียกใช้โค้ดอ่านจาก secret ไม่เห็นค่าจริง
env.API_KEY· ไฟล์ลับอยู่ใน .gitignore
เงิน / ภาษี ห้ามให้ AI เดา deterministic, not AI guess

AI เก่งเรื่องภาษา-สรุป-ร่างข้อความ แต่ ไม่ควรปล่อยให้ AI "เดา" ตัวเลขเงิน— VAT, หัก ณ ที่จ่าย, เงินเดือน, ยอดรวม. ตัวเลขพวกนี้ต้องคำนวณด้วย สูตรที่ตรวจสอบได้ (deterministic)คือใส่ค่าเดิมต้องได้ผลเดิมทุกครั้ง. เพราะผิด = คน เสียเงินจริง+ ผิดกฎหมายภาษี

ตัวอย่างจริงระบบให้ AI "คำนวณ" เงินเดือนพร้อมหักภาษี — AI ตอบเลขสวยแต่ หักประกันสังคมผิด พนักงานได้เงินขาดไป 400 บาททั้งบริษัท. ถ้าใช้สูตรตายตัวตามกฎหมาย เลขจะถูกและตรวจย้อนได้เสมอ
ทำ
เงิน/ภาษี/ปริมาณ → สูตรคงที่ตามกฎ · ให้ AI ช่วยแค่ อ่านบิล/แนะนำ/ร่างแล้วคนยืนยัน
อย่า
ให้ AI เป็นคนตัดสินตัวเลขสุดท้ายที่กระทบเงิน — มันอาจตอบต่างกันในแต่ละครั้ง
✗ AI เดาเลข
ไม่แน่นอนถาม AI "ยอด 12,000 VAT 7% เท่าไร" → ตอบ ฿840วันนี้ พรุ่งนี้อาจปัดเศษต่าง · ตรวจย้อนไม่ได้
✓ สูตรคำนวณ
ตายตัว ตรวจได้vat = ราคา × 0.07
ใส่ 12,000 → ได้ ฿840เสมอ ทุกครั้ง ทุกเครื่อง
AI ทำส่วนที่เหมาะให้ AI อ่านบิล/เดาหมวด/ร่างข้อความ→ คนกดยืนยันก่อนลงเงินจริง
สำรองข้อมูล + log ใครทำอะไร backup & audit log

สองตาข่ายนิรภัยที่ขาดไม่ได้: สำรองข้อมูล (backup)— กู้คืนได้เมื่อพลาดลบ/ระบบล่ม/โดนโจมตี. และ audit log— บันทึกว่า "ใคร ทำอะไร เมื่อไหร่" ตามรอยได้เมื่อมีปัญหา เช่น ข้อมูลหายไปใครเป็นคนลบ. ของเงิน ๆ ทอง ๆ ลบ = ซ่อน ไม่ลบจริงเก็บประวัติไว้เสมอ

ตัวอย่างจริงพนักงานเผลอลบลูกค้าไป 200 ราย — ถ้ามี backup รายวัน กู้คืนได้ใน 5 นาที. และ audit log บอกว่าใครลบตอนกี่โมง ทำให้รู้ว่าเป็นอุบัติเหตุ ไม่ใช่เจตนา
ทำ
ตั้ง backup อัตโนมัติ+ ลองกู้จริงเป็นระยะ · เก็บ audit ทุกการแก้ข้อมูลสำคัญ · เอกสารเงินใช้ "void" แทนลบ
อย่า
มี backup แต่ไม่เคยลองกู้ — วันที่ต้องใช้จริงอาจพบว่ากู้ไม่ได้
เช็คลิสต์ตาข่ายนิรภัย
Backup อัตโนมัติ
สำรองข้อมูลทุกวัน เก็บหลายชุด/หลายที่
ลองกู้จริง
ทดสอบกู้คืนเป็นระยะ ไม่ใช่แค่ตั้งไว้
Audit log
ใคร · ทำอะไร · เมื่อไหร่ · ค่าก่อน-หลัง
ลบ = ซ่อน
เอกสารเงินใช้ void เก็บประวัติเสมอ
กู้คืนเร็ว
รู้ขั้นตอนกู้ล่วงหน้า พลาดแล้วไม่ลน

เช็คลิสต์ความปลอดภัยขั้นต่ำ (ก่อนเปิดใช้จริง)

มีข้อมูลส่วนตัวลูกค้า (PDPA)ต้องล็อกอินก่อนดู + เก็บเท่าที่จำเป็น
หลายบริษัทใช้ระบบเดียวแยกข้อมูลขาด 100% (เช็คหลังบ้าน)
พนักงานหลายคน / หลายบทบาทให้สิทธิ์เท่าที่จำเป็น + ปิดเมื่อลาออก
มี key / รหัส เชื่อมระบบอื่นเก็บใน secret · ห้ามขึ้น git
มีตัวเลขเงิน / ภาษี / เงินเดือนสูตรคำนวณตายตัว ไม่ให้ AI เดา
ข้อมูลสำคัญที่หายไม่ได้Backup อัตโนมัติ + audit log
พรอมต์ก๊อปไปวางท้ายคำสั่ง AI

แปะต่อท้ายตอนสั่ง AI สร้างหรือแก้ระบบ เพื่อบังคับให้ใส่ความปลอดภัยมาตั้งแต่แรก ไม่ต้องมาตามแก้ทีหลัง

ระบบนี้เก็บข้อมูลธุรกิจจริง ทำตามนี้ทุกข้อ: 1. ทุก query แนบเงื่อนไข company_id ของคนที่ล็อกอินเสมอ เช็คที่หลังบ้าน ห้ามเชื่อหน้าจอกรอง 2. แบ่งสิทธิ์ตามบทบาท เห็นเฉพาะที่งานต้องใช้ ปิดบัญชีได้ทันทีเมื่อลาออก 3. key/รหัส/token เก็บใน environment variable ฝั่งหลังบ้านเท่านั้น ใส่ .gitignore ห้ามฝังในโค้ดหน้าบ้านหรือ commit ขึ้น git 4. ตัวเลขเงิน/VAT/ภาษี/เงินเดือน คำนวณด้วยสูตรตายตัว ห้ามให้ AI เดา 5. ข้อมูลส่วนตัวลูกค้าต้องล็อกอินก่อนดู เก็บเท่าที่จำเป็น 6. เอกสารเงินใช้ void แทนลบ เก็บ audit log ใคร-ทำอะไร-เมื่อไหร่
อ่านต่อจากแหล่งอื่น (บทความภายนอก)
บทความภายนอกเป็นของผู้เขียนแต่ละเว็บ (ไม่ใช่ของเรา) · เปิดในแท็บใหม่
กลับห้องสมุดออกแบบ

อ่านต่อ — เรื่องที่เกี่ยวข้อง

Auth & สิทธิ์ผู้ใช้ Deploy ขึ้นออนไลน์ จัดการ + เชื่อมโยงข้อมูล จัดการ Error + ตรวจฟอร์ม