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

Security Audit

ให้ AI ตรวจสอบสถานะความปลอดภัยของแอปคุณ ปฏิบัติตามแนวทางที่ดีที่สุดด้านล่างนี้ และเก็บ secrets ไว้ในหน้า Settings

ความปลอดภัยใน Proyecta ขับเคลื่อนด้วยการผสมผสานระหว่างค่าเริ่มต้นของแพลตฟอร์ม การตรวจสอบโดย AI และนิสัยบางอย่างที่คุณควรสร้างขึ้น นี่คือวิธีคิดเกี่ยวกับเรื่องนี้

เปิด Command Palette (Cmd+K / Ctrl+K) แล้วเลือก Run Security Audit ซึ่งจะส่ง prompt ด้านความปลอดภัยที่ครอบคลุมไปยัง AI โดย AI จะอ่าน codebase ทั้งหมดของคุณและแสดงช่องโหว่พร้อมผลการค้นพบที่จัดลำดับความสำคัญและวิธีแก้ไขที่เฉพาะเจาะจง

การ audit จะตรวจสอบสิ่งต่อไปนี้:

  • API key, token หรือ password ที่ฝังตรงลงในไฟล์ source
  • env var ที่มี prefix VITE_ ซึ่งอาจรั่วไหล secrets ไปยัง client
  • การขาด input validation ฝั่ง server บน API endpoint
  • หน้าเว็บหรือ API endpoint ที่ไม่มีการ authentication
  • เนื้อหาจากผู้ใช้ที่ไม่ได้ escape (ความเสี่ยง XSS)
  • ช่องโหว่ของ dependency
  • Mixed content หรือ URL http:// ที่ฝังตรง
  • การขาด validation สำหรับการอัปโหลดไฟล์

คุณยังสามารถรัน security audit ด้วยตนเองจากแชท หรือระบุขอบเขตให้แคบลงในพื้นที่ที่ต้องการ:

  • "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"

เก็บ secrets ให้ปลอดภัย

  • เก็บ API key ทุกรายการ, credential ของฐานข้อมูล และ token ของบริการภายนอก ไว้ในส่วน Environment Variables ของหน้า Settings
  • อย่าวาง secrets ลงในข้อความแชทหรือ commit ลงใน code
  • หาก secret ถูกเปิดเผย ให้เพิกถอนทันทีกับผู้ให้บริการภายนอกและสร้างอันใหม่

จำกัดการเข้าถึง

  • กำหนด role-based permissions ในแอปของคุณ ("Add admin and member roles. Only admins can access /admin pages.")
  • จำกัดหน้าเว็บและ endpoint ที่มีข้อมูลสำคัญเฉพาะผู้ใช้ที่ผ่านการ authentication แล้ว
  • ตรวจสอบ input ของผู้ใช้ฝั่ง server เสมอ ไม่ใช่เฉพาะฝั่ง client

ใช้ HTTPS ทุกที่

  • แอป Proyecta ที่ publish แล้วทุกแอปจะถูก serve ผ่าน HTTPS โดยอัตโนมัติ
  • SSL certificate จะถูก provision และต่ออายุให้คุณ
  • สำหรับ custom domain จะใช้หลักการเดียวกันเมื่อชี้ DNS อย่างถูกต้องแล้ว

อัปเดต dependency อยู่เสมอ

  • ถาม AI เป็นระยะ: "Check my dependencies for known security vulnerabilities and upgrade the vulnerable ones."
  • ตรวจสอบสิ่งที่ AI เปลี่ยนแปลง เพราะการอัปเกรด dependency บางครั้งอาจมี breaking changes

ตรวจสอบหลังการเปลี่ยนแปลงครั้งใหญ่

  • รัน audit อีกครั้งหลังจากเพิ่ม authentication, ระบบชำระเงิน, การอัปโหลดไฟล์ หรือสิ่งใดก็ตามที่เกี่ยวข้องกับข้อมูลผู้ใช้
  • ก่อน publish ขึ้น production เป็นครั้งแรก ให้ทำการตรวจสอบแบบครอบคลุมทั้งหมด
  • HTTPS และ certificate สำหรับ subdomain *.proyecta.live ของคุณ
  • ที่จัดเก็บข้อมูลแอป — content, records และ catalog ของแอปถูกจัดเก็บอยู่ใน data layer ของแพลตฟอร์ม Proyecta (รองรับด้วย Postgres) แยกตามองค์กรของคุณและเข้ารหัสขณะจัดเก็บ แอปที่ publish แล้วเข้าถึงข้อมูลด้วย publishable key (pk_pub_*) ที่ปลอดภัยต่อการส่งในหน้าเว็บ เนื่องจาก server จำกัด anonymous request ให้เข้าถึงเฉพาะ content ที่ publish แล้ว และการดำเนินการของผู้ดูแลระบบจะต้องมี signed-in session พร้อม role ที่ถูกต้องเพิ่มเติม ทุก request ได้รับการ authorize ตามองค์กรของคุณ — แอปหนึ่งจะไม่สามารถอ่านข้อมูลของอีกแอปได้
  • Environment variables — secrets ถูกจัดเก็บใน secrets store เฉพาะ, ซิงก์กับ backend ของแอปตามความเหมาะสม และจะไม่ถูก commit ลงใน codebase ของคุณ หมายเหตุ: secrets จะมองเห็นได้โดยสมาชิก workspace ที่มีสิทธิ์เข้าถึงโปรเจกต์
  • Isolated runtimes — แต่ละโปรเจกต์รันใน container ของตัวเอง ดังนั้นปัญหาใน dev environment จะไม่กระทบผู้ใช้รายอื่น
  • รัน audit ก่อน publish ครั้งแรก — การตรวจสอบแบบครอบคลุมจะจับปัญหาก่อนที่จะเผยแพร่สู่สาธารณะ
  • รันซ้ำหลังการเปลี่ยนแปลงครั้งใหญ่ — การเพิ่ม auth, ระบบชำระเงิน หรือการอัปโหลดไฟล์ จะสร้าง attack surface ใหม่
  • ระบุขอบเขตให้แคบลง — การ audit ในพื้นที่เฉพาะจะเร็วกว่าและละเอียดกว่าการ audit ทั้งแอป