Security Audit
ขอให้ AI ตรวจสอบสถานะความปลอดภัยของแอปของคุณ ปฏิบัติตามแนวทางที่ดีที่สุดด้านล่าง และเก็บ secret ไว้ในหน้า Settings
ความปลอดภัยใน Proyecta จัดการผ่านการผสมผสานระหว่างค่าเริ่มต้นของแพลตฟอร์ม การตรวจสอบโดย AI และนิสัยบางอย่างที่คุณควรสร้างขึ้น นี่คือวิธีคิดเกี่ยวกับเรื่องนี้
รันการตรวจสอบความปลอดภัย
หัวข้อที่มีชื่อว่า “รันการตรวจสอบความปลอดภัย”เปิด Command Palette (Cmd+K / Ctrl+K) และเลือก Run Security Audit ซึ่งจะส่ง prompt ด้านความปลอดภัยที่ครอบคลุมไปยัง AI เพื่ออ่าน codebase ทั้งหมดของคุณและแสดงช่องโหว่พร้อมผลลัพธ์ที่จัดลำดับความสำคัญและวิธีแก้ไขที่ชัดเจน
การตรวจสอบนี้ครอบคลุม:
- API key, token, หรือรหัสผ่านที่ฝังตรงในไฟล์ source
- env var ที่มีคำนำหน้า
VITE_ซึ่งอาจรั่วไหล secret ไปยัง client - การขาด input validation ฝั่ง server บน API endpoint
- หน้าเว็บหรือ API endpoint ที่ไม่มีการยืนยันตัวตน
- เนื้อหาจากผู้ใช้ที่ไม่ได้ escape (ความเสี่ยง XSS)
- ช่องโหว่ของ dependency
- Mixed content หรือ URL แบบ
http://ที่ฝังตรง - การขาด validation สำหรับการอัปโหลดไฟล์
คุณยังสามารถรันการตรวจสอบความปลอดภัยด้วยตนเองจากแชท หรือเจาะจงไปที่พื้นที่ใดพื้นที่หนึ่ง:
"Review my checkout flow for security issues""Check the admin pages — who can access what?""Look at every endpoint that writes to the database and tell me if any of them are missing authorization"
แนวทางที่ดีที่สุดด้านความปลอดภัย
หัวข้อที่มีชื่อว่า “แนวทางที่ดีที่สุดด้านความปลอดภัย”เก็บ secret ให้ปลอดภัย
- เก็บ API key, credential ของฐานข้อมูล และ token ของบริการภายนอกทุกตัวไว้ในส่วน Environment Variables ของหน้า Settings
- อย่าวาง secret ลงในข้อความแชทหรือ commit ลงใน code เด็ดขาด
- หาก secret ถูกเปิดเผย ให้ยกเลิกการใช้งานกับผู้ให้บริการบุคคลที่สามทันทีและสร้างอันใหม่
จำกัดการเข้าถึง
- กำหนดสิทธิ์ตามบทบาทในแอปของคุณ (
"Add admin and member roles. Only admins can access /admin pages.") - จำกัดหน้าเว็บและ endpoint ที่มีความสำคัญเฉพาะผู้ใช้ที่ยืนยันตัวตนแล้ว
- ตรวจสอบ input ของผู้ใช้ฝั่ง server เสมอ ไม่ใช่แค่ฝั่ง client
ใช้ HTTPS ทุกที่
- แอป Proyecta ที่ publish แล้วทุกแอปจะให้บริการผ่าน HTTPS โดยอัตโนมัติ
- SSL certificate จะถูก provision และต่ออายุให้คุณ
- สำหรับ custom domain ก็เช่นกัน เมื่อตั้งค่า DNS ถูกต้องแล้ว
อัปเดต dependency อยู่เสมอ
- ขอให้ AI ตรวจสอบเป็นระยะ:
"Check my dependencies for known security vulnerabilities and upgrade the vulnerable ones." - ตรวจสอบสิ่งที่ AI เปลี่ยน เพราะการอัปเกรด dependency บางครั้งมี breaking change
ตรวจสอบหลังการเปลี่ยนแปลงครั้งใหญ่
- รันการตรวจสอบอีกครั้งหลังจากเพิ่มระบบยืนยันตัวตน, การชำระเงิน, การอัปโหลดไฟล์ หรืออะไรก็ตามที่เกี่ยวข้องกับข้อมูลผู้ใช้
- ก่อน publish สู่ production เป็นครั้งแรก ให้ทำการตรวจสอบแบบครอบคลุม
สิ่งที่ Proyecta จัดการให้คุณ
หัวข้อที่มีชื่อว่า “สิ่งที่ Proyecta จัดการให้คุณ”- HTTPS และ certificate สำหรับ subdomain
*.proyecta.liveของคุณ - Environment variables — secret จะถูกเก็บในที่เก็บ secret โดยเฉพาะและซิงค์กับ backend ของแอปคุณ (Convex) โดยไม่ถูก commit ลงใน codebase ของคุณ หมายเหตุ: secret จะมองเห็นได้โดยสมาชิก workspace ที่มีสิทธิ์เข้าถึงโปรเจกต์
- Isolated runtime — แต่ละโปรเจกต์รันใน container ของตัวเอง ดังนั้นปัญหาในสภาพแวดล้อม dev จะไม่กระทบผู้ใช้คนอื่น
เคล็ดลับ
หัวข้อที่มีชื่อว่า “เคล็ดลับ”- รันการตรวจสอบก่อน publish ครั้งแรก — การตรวจสอบแบบครอบคลุมจะจับปัญหาก่อนที่จะเผยแพร่สู่สาธารณะ
- รันอีกครั้งหลังการเปลี่ยนแปลงครั้งใหญ่ — การเพิ่มระบบยืนยันตัวตน, การชำระเงิน หรือการอัปโหลดไฟล์ จะสร้าง attack surface ใหม่
- เจาะจงขอบเขต — การตรวจสอบในพื้นที่เฉพาะจะเร็วกว่าและละเอียดกว่าการตรวจสอบแบบ full-app