ข้ามไปยังเนื้อหา

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 เป็นครั้งแรก ให้ทำการตรวจสอบแบบครอบคลุม
  • HTTPS และ certificate สำหรับ subdomain *.proyecta.live ของคุณ
  • Environment variables — secret จะถูกเก็บในที่เก็บ secret โดยเฉพาะและซิงค์กับ backend ของแอปคุณ (Convex) โดยไม่ถูก commit ลงใน codebase ของคุณ หมายเหตุ: secret จะมองเห็นได้โดยสมาชิก workspace ที่มีสิทธิ์เข้าถึงโปรเจกต์
  • Isolated runtime — แต่ละโปรเจกต์รันใน container ของตัวเอง ดังนั้นปัญหาในสภาพแวดล้อม dev จะไม่กระทบผู้ใช้คนอื่น
  • รันการตรวจสอบก่อน publish ครั้งแรก — การตรวจสอบแบบครอบคลุมจะจับปัญหาก่อนที่จะเผยแพร่สู่สาธารณะ
  • รันอีกครั้งหลังการเปลี่ยนแปลงครั้งใหญ่ — การเพิ่มระบบยืนยันตัวตน, การชำระเงิน หรือการอัปโหลดไฟล์ จะสร้าง attack surface ใหม่
  • เจาะจงขอบเขต — การตรวจสอบในพื้นที่เฉพาะจะเร็วกว่าและละเอียดกว่าการตรวจสอบแบบ full-app