เว็บที่สร้างด้วย AI ปลอดภัยไหม: เช็กลิสต์ 10 ข้อก่อนเปิดให้คนใช้

เว็บจาก AI ใช้ได้แต่ปลอดภัยไหม: สิ่งที่ BrewInTH ดูแลให้ เช็กลิสต์ 10 ข้อ prompt ให้ AI ตรวจโค้ดตัวเอง และวิธีทดสอบเอง 5 อย่างก่อนเปิดเว็บ
AI เขียนเว็บให้เสร็จได้ในชั่วโมงเดียว หน้าตาดี กดแล้วทำงาน แต่ "ทำงานได้" กับ "ปลอดภัย" เป็นคนละเรื่อง เว็บที่ใช้งานได้ปกติอาจมีช่องให้คนอื่นอ่านข้อมูลลูกค้า หรือใช้ API key ของคุณจนเสียเงินได้ โดยที่คุณไม่เห็นอะไรผิดปกติบนหน้าจอเลย
บทความนี้ตอบว่าเว็บที่สร้างด้วย AI ปลอดภัยแค่ไหน อะไรที่ BrewInTH ดูแลให้แล้ว อะไรที่คุณกับ AI ต้องทำเอง พร้อมเช็กลิสต์ 10 ข้อ prompt ให้ AI ตรวจโค้ดตัวเอง และวิธีทดสอบง่าย ๆ 5 อย่างที่ไม่ต้องเขียนโค้ด
สรุปสั้นก่อนอ่าน
✅ เว็บที่ AI สร้างปลอดภัยได้ ถ้าคุณสั่งให้ชัดและตรวจก่อนเปิด AI มักทำให้ "ใช้ได้" ก่อน แล้วข้ามเรื่องสิทธิ์และค่าลับ
✅ BrewInTH ดูแลชั้นโครงสร้างให้: HTTPS ทุกเว็บ แยกโปรเจกต์ออกจากกัน เข้ารหัสค่าตั้งแอป และจำกัดความถี่ของคำขอ
✅ ชั้นของแอปเป็นหน้าที่คุณกับ AI: ล็อกอิน สิทธิ์ การตรวจข้อมูลที่รับเข้า และการเก็บค่าลับ
✅ ช่องโหว่ที่เจอบ่อยสุดคือ ดูข้อมูลของคนอื่นได้ด้วยการเปลี่ยนเลขในที่อยู่ และ API key หลุดไปอยู่ในหน้าเว็บ
✅ เว็บที่รับเงิน เก็บข้อมูลสุขภาพ หรือข้อมูลส่วนบุคคลจำนวนมาก ควรให้ผู้เชี่ยวชาญตรวจก่อนเปิดจริง
เว็บที่ AI สร้างปลอดภัยไหม
คำตอบตรง ๆ คือ ขึ้นกับว่าคุณสั่งและตรวจแค่ไหน AI รู้วิธีเขียนโค้ดที่ปลอดภัย แต่เมื่อโจทย์คือ "ทำให้ใช้ได้" มันจะเลือกทางที่สั้นที่สุด ปัญหาที่เจอบ่อยในเว็บจาก AI มีไม่กี่แบบ
- ซ่อนปุ่มจากผู้ใช้ที่ไม่มีสิทธิ์ แต่ไม่ตรวจสิทธิ์ที่ฝั่งเซิร์ฟเวอร์
- ใส่ API key ไว้ในโค้ดหน้าเว็บ ซึ่งใครก็เปิดดูได้
- ทิ้งบัญชีทดสอบ เช่น admin / admin123 ไว้
- เปิดโหมด debug ค้าง ทำให้หน้า error โชว์รายละเอียดภายใน
- รับไฟล์อัปโหลดทุกชนิด ทุกขนาด
ข่าวดีคือทุกข้อแก้ได้ด้วยการบอก AI ให้ชัด และตรวจซ้ำก่อนเปิด
อะไรที่ BrewInTH ดูแลให้ อะไรที่คุณต้องทำเอง

สิ่งที่แพลตฟอร์มทำให้แล้ว
- HTTPS ทุกเว็บ ทั้งที่อยู่ของ BrewInTH และโดเมนของคุณเอง ระบบออกใบรับรองให้ ไม่ต้องตั้งค่าเอง
- แต่ละโปรเจกต์รันแยกจากกัน แอปของคุณอยู่ในพื้นที่ของตัวเอง ไม่ปนกับของลูกค้ารายอื่น
- ค่าตั้งแอป (secrets) ถูกเข้ารหัส และส่งให้แอปเป็น environment variable ตอนเริ่มทำงาน ไม่ต้องเขียนลงโค้ด
- จำกัดความถี่คำขอต่อ IP ที่ชั้นหน้าเว็บ ช่วยลดการยิงถล่มแบบง่าย ๆ
- token ของ AI มีวันหมดอายุ และยกเลิกได้ทุกเมื่อจากคอนโซล
- บริการสำรองข้อมูล เป็นแอดออน สำรองฐานข้อมูลอัตโนมัติทุกวัน
สิ่งที่แพลตฟอร์มทำแทนไม่ได้
แพลตฟอร์มไม่รู้ว่าในแอปของคุณ ใครควรเห็นอะไร ข้อมูลไหนเป็นความลับ หรือฟอร์มไหนควรรับค่าแบบใด ทั้งหมดนี้อยู่ในโค้ดที่ AI เขียน จึงเป็นหน้าที่ของคุณกับ AI
เช็กลิสต์ 10 ข้อก่อนเปิดให้คนใช้

- ค่าลับไม่อยู่ในโค้ดและไม่อยู่ในหน้าเว็บ API key รหัสฐานข้อมูล และ key ของระบบชำระเงิน ต้องอยู่ในแท็บ ตั้งค่าแอป ของโปรเจกต์ และถูกเรียกใช้จากฝั่งเซิร์ฟเวอร์เท่านั้น อะไรที่อยู่ใน JavaScript ของหน้าเว็บ ถือว่าทุกคนเห็น
- รหัสผ่านเก็บแบบ hash ด้วยวิธีมาตรฐาน เช่น bcrypt หรือ argon2 ห้ามเก็บตัวอักษรตรง ๆ
- ตรวจสิทธิ์ที่เซิร์ฟเวอร์ทุกคำขอ ทั้ง "ล็อกอินหรือยัง" และ "ข้อมูลชิ้นนี้เป็นของคนนี้ไหม"
- ตรวจข้อมูลที่รับเข้าทุกช่อง ที่ฝั่งเซิร์ฟเวอร์ และส่งคำสั่งฐานข้อมูลแบบมี parameter ไม่ต่อข้อความเอง (กัน SQL injection)
- แสดงข้อความจากผู้ใช้แบบ escape ไม่ให้สคริปต์ที่มีคนพิมพ์เข้ามาทำงานบนหน้าเว็บ (กัน XSS)
- จำกัดไฟล์อัปโหลด ทั้งชนิดและขนาด ตั้งชื่อไฟล์ใหม่เอง และเก็บในพื้นที่เก็บไฟล์ถาวรหรือที่เก็บไฟล์ภายนอก
- หน่วงการล็อกอินผิดซ้ำ ๆ และจำกัดจำนวนครั้งของฟอร์มที่ส่งอีเมลหรือ SMS
- ไม่มีบัญชีทดสอบและรหัสเริ่มต้นค้าง หน้าผู้ดูแลระบบต้องล็อกอินเสมอ
- ปิดโหมด debug หน้า error ที่ผู้ใช้เห็นต้องไม่โชว์โค้ด path หรือคำสั่งฐานข้อมูล (Laravel:
APP_DEBUG=false) - สำรองข้อมูล และเก็บข้อมูลส่วนบุคคลเท่าที่จำเป็น มีหน้านโยบายความเป็นส่วนตัวถ้าเก็บข้อมูลผู้ใช้
Prompt ให้ AI ตรวจความปลอดภัยของโค้ดตัวเอง
ส่งข้อความนี้ในแชตเดิมที่ AI เขียนเว็บให้ ก่อนเปิดให้คนใช้
ก่อนเปิดเว็บนี้ให้คนใช้จริง ช่วยตรวจความปลอดภัยของโค้ดทั้งโปรเจกต์ แล้วรายงานเป็นตาราง: ข้อ / ผ่านหรือไม่ผ่าน / ไฟล์ที่เกี่ยวข้อง / วิธีแก้
1. มีค่าลับ (API key, รหัสผ่าน, token) เขียนอยู่ในโค้ดหรือส่งไปถึงเบราว์เซอร์ไหม
2. รหัสผ่านผู้ใช้เก็บแบบ hash ด้วย bcrypt หรือ argon2 ไหม
3. ทุกเส้นทางที่ต้องล็อกอิน ตรวจที่ฝั่งเซิร์ฟเวอร์ไหม และตรวจว่าข้อมูลเป็นของผู้ใช้คนนั้นจริงไหม (ลองคิดว่าผู้ใช้เปลี่ยน id ในคำขอ)
4. ทุกคำสั่งฐานข้อมูลใช้ parameter ไหม มีจุดไหนต่อข้อความจากผู้ใช้เข้าไปตรง ๆ
5. ข้อความจากผู้ใช้ถูก escape ก่อนแสดงไหม
6. การอัปโหลดไฟล์จำกัดชนิดและขนาดไหม
7. ล็อกอินและฟอร์มที่ส่งอีเมลมีการจำกัดจำนวนครั้งไหม
8. มีบัญชีทดสอบ รหัสเริ่มต้น หรือเส้นทาง debug ค้างอยู่ไหม
9. หน้า error ใน production โชว์รายละเอียดภายในไหม
10. dependency มีตัวไหนที่มีช่องโหว่ที่รู้จักไหม (รันเครื่องมือตรวจของภาษานั้น)
แก้ทุกข้อที่ไม่ผ่าน อธิบายสั้น ๆ ว่าแก้อะไร แล้วนำขึ้น BrewInTH ใหม่
ห้ามพิมพ์ค่าลับจริงลงในแชตหรือ log
ถ้ามี AI อีกตัว ให้ตัวที่สองตรวจโค้ดของตัวแรกด้วย prompt เดียวกัน มักเจอสิ่งที่ตัวแรกมองข้าม
ทดสอบเอง 5 อย่าง ไม่ต้องเขียนโค้ด

- เปลี่ยนเลขในที่อยู่ ล็อกอินแล้วเปิดข้อมูลของตัวเอง เช่น
/orders/15ลองเปลี่ยนเป็น/orders/14ต้องไม่เห็นข้อมูลของคนอื่น - เปิดหน้าหลังบ้านโดยไม่ล็อกอิน เปิดหน้าต่างแบบไม่ระบุตัวตน แล้วพิมพ์ที่อยู่ของหน้าผู้ดูแลระบบตรง ๆ ต้องถูกส่งไปหน้าล็อกอิน
- ค้นหาค่าลับในหน้าเว็บ คลิกขวาเลือกดูซอร์สของหน้า แล้วค้นคำว่า
key,secret,token,passwordต้องไม่เจอค่าจริง - พิมพ์สคริปต์ลงในฟอร์ม ใส่
<script>alert(1)</script>เป็นชื่อหรือข้อความ บันทึก แล้วเปิดหน้าที่แสดงข้อความนั้น ต้องเห็นเป็นตัวหนังสือ ไม่มีกล่องเด้งขึ้นมา - ทำให้เกิด error เปิดที่อยู่ที่ไม่มีอยู่จริง หรือใส่ตัวอักษรในช่องที่ควรเป็นตัวเลข หน้า error ต้องสั้นและไม่โชว์โค้ดหรือชื่อตาราง
ไม่ผ่านข้อไหน คัดลอกสิ่งที่เห็นส่งให้ AI แก้ แล้วทดสอบซ้ำ ทดสอบกับเว็บของตัวเองเท่านั้น
เมื่อไรควรให้ผู้เชี่ยวชาญตรวจ
เช็กลิสต์นี้ลดความเสี่ยงที่พบบ่อย แต่ไม่ใช่การรับรองความปลอดภัย ควรให้ผู้เชี่ยวชาญตรวจเมื่อเว็บของคุณ
- รับชำระเงินหรือเก็บข้อมูลบัตร (ทางที่ดีคือใช้หน้าชำระเงินของผู้ให้บริการ ไม่เก็บเลขบัตรเอง)
- เก็บข้อมูลสุขภาพ การเงิน หรือเอกสารยืนยันตัวตน
- มีผู้ใช้จำนวนมาก หรือเป็นระบบที่ธุรกิจหยุดไม่ได้
ดูวิดีโอประกอบ
▶ ตัวอย่างตั้งแต่สร้างโปรเจกต์จนเปิดเว็บ (1:30 นาที)
ดูบน YouTube
คำถามที่พบบ่อย
เว็บ static ที่ไม่มีล็อกอิน ต้องกังวลไหม
น้อยมาก เว็บ static ไม่มีฐานข้อมูลและไม่มีโปรแกรมฝั่งเซิร์ฟเวอร์ สิ่งที่ต้องดูมีข้อเดียว คืออย่าใส่ API key หรือข้อมูลที่ไม่อยากให้คนเห็นไว้ในไฟล์ เพราะทุกไฟล์เปิดดูได้
มี HTTPS แล้ว แปลว่าปลอดภัยแล้วใช่ไหม
ไม่ใช่ HTTPS กันการดักข้อมูลระหว่างทาง แต่ไม่ได้กันช่องโหว่ในแอป เช่น การดูข้อมูลของคนอื่นได้
ควรให้ token ของโปรเจกต์กับ AI นานแค่ไหน
เท่าที่งานต้องใช้ token จากปุ่มสร้างลิงก์อัตโนมัติมีอายุ 24 ชั่วโมง ถ้างานเสร็จก่อน ยกเลิกสิทธิ์ได้ทันทีในหน้าเชื่อมต่อ AI และอย่าโพสต์ token ในที่สาธารณะ
ถ้า API key หลุดไปแล้ว ทำยังไง
ยกเลิก key นั้นที่ผู้ให้บริการทันทีแล้วออก key ใหม่ ใส่ค่าใหม่ในแท็บ ตั้งค่าแอป เผยแพร่อีกครั้ง แล้วให้ AI ย้ายการเรียกใช้ไปไว้ฝั่งเซิร์ฟเวอร์ การลบ key ออกจากโค้ดอย่างเดียวไม่พอ เพราะมีคนเห็นไปแล้ว
ต้องทำตาม PDPA ไหม
ถ้าเว็บเก็บข้อมูลส่วนบุคคล เช่น ชื่อ เบอร์โทร อีเมล ควรบอกผู้ใช้ว่าเก็บอะไร ใช้ทำอะไร และเก็บเท่าที่จำเป็น รายละเอียดทางกฎหมายควรปรึกษาผู้รู้ บทความนี้ไม่ใช่คำแนะนำทางกฎหมาย
สรุป
เว็บที่สร้างด้วย AI ปลอดภัยได้ ถ้าไม่หยุดที่ "ใช้งานได้" ให้แพลตฟอร์มดูแลชั้นโครงสร้าง ส่วนชั้นของแอป ใช้เช็กลิสต์ 10 ข้อ ให้ AI ตรวจโค้ดตัวเอง แล้วทดสอบเองอีก 5 อย่างก่อนส่งลิงก์ให้ใคร
