เช็กลิสต์ความปลอดภัยก่อนปล่อยแอปที่สร้างด้วย AI
เช็กลิสต์ 7 หมวดสำหรับแอปที่สร้างด้วย vibe coding ตั้งแต่สิทธิ์ secrets ข้อมูลที่ผู้ใช้กรอก ไปจนถึง PDPA และการกู้คืน อ้างอิง OWASP และ Veracode
คืนก่อนเปิดตัวแอปที่คุณสร้างด้วย AI ทุกอย่างดูพร้อม หน้าตาสวย ฟอร์มส่งได้ ข้อมูลเข้าฐานข้อมูลครบ แต่คำถามที่ควรถามก่อนกดแชร์ลิงก์คือ "ถ้ามีคนตั้งใจเจาะ แอปนี้จะเผยอะไรออกไปบ้าง" แอปที่ทำงานได้ไม่ได้แปลว่าปลอดภัย และ AI มักโฟกัสที่การทำให้ฟีเจอร์ทำงาน มากกว่าการป้องกันคนที่ใช้งานผิดวิธี
ทำไมแอปที่สร้างด้วย AI ต้องมีเช็กลิสต์เฉพาะ
Veracode เผยแพร่งานวิจัยเมื่อกรกฎาคม 2025 ที่ทดสอบโมเดลภาษามากกว่า 100 ตัวกับงานเขียนโค้ด 80 งาน พบว่าโค้ดที่ AI สร้างมีจุดอ่อนด้านความปลอดภัยใน 45% ของกรณี ประเด็นไม่ใช่ว่า AI แย่ แต่คือ AI เขียนสิ่งที่คุณขอ และคุณมักไม่ได้ขอเรื่องความปลอดภัย บทความของ Snyk เรื่องความปลอดภัยของ vibe coding แนะนำให้มองโค้ดจาก AI เหมือนงานของนักพัฒนามือใหม่ที่ต้องมีคนรีวิวเสมอ
อีกแหล่งที่ใช้อ้างอิงได้คือ OWASP Top 10:2025 ซึ่งเป็นรายการความเสี่ยงของเว็บแอปที่วงการใช้กันกว้างขวาง อันดับแรกคือ Broken Access Control หรือการควบคุมสิทธิ์ที่ผิดพลาด ตามด้วย Security Misconfiguration ทั้งสองเรื่องนี้คือจุดที่แอป vibe coding พลาดบ่อย
เช็กลิสต์ 7 หมวดก่อนปล่อยแอป
1. สิทธิ์การเข้าถึง (Access Control)
- ทุกตารางที่มีข้อมูลผู้ใช้เปิด Row Level Security หรือกลไกเทียบเท่าแล้ว
- ทดสอบด้วยบัญชีสองบัญชีว่าเปิดดูหรือแก้ข้อมูลของอีกฝ่ายไม่ได้
- หน้า admin ตรวจสิทธิ์ที่ backend ไม่ใช่แค่ซ่อนปุ่มในหน้าจอ
2. Secrets และ Key
- ไม่มี secret key, service role key หรือรหัสผ่านอยู่ในโค้ด frontend (ลองเปิดดู source ของหน้าเว็บแล้วค้นคำว่า key หรือ secret)
- Key ของบริการที่คิดเงินตามการใช้งาน เช่น AI API เรียกผ่าน backend เท่านั้น
- ถ้าเคยเผลอแปะ key ในแชตหรือ commit ขึ้น GitHub ให้ยกเลิกแล้วออก key ใหม่ทันที
3. ข้อมูลที่ผู้ใช้กรอก (Input)
- ตรวจข้อมูลที่ backend ไม่ใช่แค่ในฟอร์ม เพราะคนข้ามฟอร์มแล้วส่งคำขอตรงได้
- ข้อความที่ผู้ใช้พิมพ์แล้วแสดงซ้ำบนหน้าเว็บ ต้องไม่ถูกตีความเป็นโค้ด รายงานของ Veracode ชี้ว่า XSS (Cross-Site Scripting) เป็นจุดที่โมเดลพลาดบ่อยมาก
- จำกัดชนิดและขนาดไฟล์ที่อัปโหลดได้
4. Authentication
- ใช้ระบบ login ของบริการที่เชื่อถือได้ แทนการให้ AI เขียนระบบเก็บรหัสผ่านเอง
- ลิงก์รีเซ็ตรหัสผ่านและยืนยันอีเมลทำงานถูกต้อง
5. Dependencies
- ตรวจว่า library ที่ AI ติดตั้งมีอยู่จริงและเป็นตัวที่คนใช้กันแพร่หลาย ไม่ใช่ชื่อที่คล้ายกัน
- OWASP Top 10:2025 จัด Software Supply Chain Failures ไว้เป็นหนึ่งในหมวดหลัก
6. ข้อมูลส่วนบุคคล
- เก็บเท่าที่ใช้จริง ไฟล์เอกสารสำคัญอยู่ใน storage ส่วนตัว
- มีหน้านโยบายความเป็นส่วนตัว และช่องทางให้ผู้ใช้ขอลบข้อมูล ตามหลัก PDPA
7. การใช้งานผิดปกติและการกู้คืน
- มีการจำกัดจำนวนคำขอ (rate limit) ในจุดที่เรียก API ที่มีค่าใช้จ่าย
- ตั้งงบสูงสุดและการแจ้งเตือนค่าใช้จ่าย
- มี backup ของฐานข้อมูล และเคยลองกู้คืนอย่างน้อยหนึ่งครั้ง
ตัวอย่าง: ร้านอาหารรับสมัครพนักงานพาร์ตไทม์
เจ้าของร้านอาหารสามสาขาสร้างเว็บรับสมัครพาร์ตไทม์ ให้ผู้สมัครอัปโหลดสำเนาบัตรประชาชน ก่อนเปิดใช้เธอไล่เช็กลิสต์และพบสองจุด: bucket ที่เก็บไฟล์ตั้งเป็นสาธารณะ ใครมีลิงก์ก็เปิดได้ และหน้ารายชื่อผู้สมัครแค่ซ่อนเมนูไว้ แต่ถ้าพิมพ์ URL ตรงก็เข้าได้ เธอสั่ง AI ให้ย้ายไฟล์ไป bucket ส่วนตัว เพิ่มการตรวจสิทธิ์ admin ที่ backend แล้วทดสอบซ้ำจากเครื่องที่ไม่ได้ login สองจุดนี้ถ้าหลุดไปถึงวันเปิดใช้ จะกลายเป็นเหตุข้อมูลรั่วทันที
แอปที่ "ใช้ได้" กับแอปที่ "ปล่อยได้" ห่างกันแค่เช็กลิสต์เดียว แต่สำคัญมาก
ข้อควรระวังในการใช้เช็กลิสต์นี้
- เช็กลิสต์ช่วยจับปัญหาที่พบบ่อย แต่ไม่ได้รับประกันว่าแอปปลอดภัยทั้งหมด
- แอปที่เก็บข้อมูลอ่อนไหว เช่น ข้อมูลสุขภาพ การเงิน หรือเอกสารราชการ ควรให้ผู้เชี่ยวชาญด้านความปลอดภัยตรวจก่อนเปิดใช้
- การถาม AI ว่า "แอปนี้ปลอดภัยไหม" ได้คำตอบกว้างๆ ให้ถามทีละหมวดตามเช็กลิสต์แทน
ทำอะไรต่อ
- คัดลอกเช็กลิสต์ 7 หมวดไปไว้ในโน้ตของโปรเจกต์
- ให้ AI ตรวจทีละหมวด และขอให้ชี้ไฟล์ที่เกี่ยวข้อง
- ทดสอบเองด้วยบัญชีทดสอบและเครื่องที่ไม่ได้ login
- ทำซ้ำทุกครั้งที่เพิ่มฟีเจอร์ที่แตะข้อมูลหรือสิทธิ์
ถ้าอยากเข้าใจเรื่องสิทธิ์และ key ให้ลึกขึ้น อ่าน Backend สำหรับคน Vibe Coding ส่วนใครที่ดูแลข้อมูลผู้สมัครงาน บทความ PDPA กับงาน HR บน Plants.work ช่วยให้เห็นภาพเรื่องการเก็บข้อมูลให้ถูกต้อง