ประตูตรวจสอบความปลอดภัย
นี่คือนิสัยเดียวที่จะเปลี่ยนทุกอย่างข้างต้นจากความกังวลให้กลายเป็นกระบวนการ: ก่อนที่คุณจะปล่อยงาน ให้ AI โจมตีโค้ดของมันเอง โมเดลที่เขียนฟีเจอร์นั้นมักจะหาช่องโหว่ในมันได้ — เพียงแต่มันจะไม่ทำ เว้นแต่คุณจะขอ พลิกบทบาทมันจากผู้สร้างเป็นศัตรู:
You wrote this endpoint. Now act as an attacker trying to break it.
List every way a malicious user could:
- read or modify data they shouldn't (authorization holes)
- inject code via input (SQL injection, XSS, command injection)
- abuse missing validation or rate limits
For each, show the exact request that exploits it, then the fix.
Don't reassure me — assume there IS a vulnerability and find it.
บรรทัดสุดท้ายนั้นสำคัญมาก: ถ้าปล่อยเป็นกลาง AI มักจะบอกว่า "ดูปลอดภัยดี!" แต่เมื่อสั่งให้สมมติว่ามีข้อบกพร่องอยู่ มันก็จะไปค้นหาจริง ๆ จับคู่การตรวจสอบเชิงปฏิปักษ์นี้กับเช็กลิสต์สั้น ๆ ก่อนปล่อยงานที่คุณรันกับทุกอย่างที่ผู้ใช้ต้องเจอ:
- ทุกเอนด์พอยต์ตรวจสอบสิทธิ์ ไม่ใช่แค่ว่าผู้ใช้ล็อกอินอยู่
- คิวรีฐานข้อมูลทั้งหมดเป็นแบบ parameterized — ไม่มี ที่สร้างด้วยการต่อสตริง
- ข้อมูลนำเข้าจากผู้ใช้ที่แสดงผลบนหน้าเว็บถูก escape แล้ว (ไม่มีการแทรก HTML ดิบ)
- ไม่มีความลับในโค้ดฝั่งไคลเอนต์ และไม่มีอันไหนถูก เข้ารีโพ
-
.envอยู่ใน gitignore แล้ว และคีย์ที่เคยรั่วไหลได้ถูกหมุนใหม่แล้ว - การอัปโหลดไฟล์ตรวจสอบชนิดและขนาด และใช้ชื่อที่สร้างขึ้น
- ดีเพนเดนซีใหม่ ๆ ถูกตรวจสอบด้วยตาว่ามีอยู่จริงและมีชื่อเสียงดี
ลองนึกภาพประตูนี้เป็นลำดับขั้นที่ไม่มีอะไรจะถูกปล่อยออกไปได้โดยไม่ผ่าน AI สลับหมวกจากผู้สร้างมาเป็นผู้โจมตี จากนั้นการสแกนอัตโนมัติจะคอยรองรับสิ่งที่การตรวจสอบด้วยมนุษย์อาจพลาดไป:
feature code
│
▼
┌──────────────────┐ "assume there IS a bug, find it"
│ ADVERSARIAL PASS │ authz holes · injection · validation
│ (AI as attacker) │
└────────┬─────────┘
│ issues found? ── yes ──▶ fix ──┐
│ no │
▼ │
┌──────────────────┐ ◀─────────────────── ┘
│ AUTOMATED GATES │ secret scan (gitleaks) · npm audit
│ (CI, every push) │ parameterized? · secrets out of client?
└────────┬─────────┘
│ all green
▼
SHIP ✓ ── anything red blocks the push ──
และรัน scanner ก่อนที่คุณจะ push — เครื่องมืออย่าง gitleaks (หรือการสแกนในตัวของแพลตฟอร์มคุณ) จะ grep โค้ดและประวัติของคุณเพื่อหาสิ่งที่มีรูปร่างเหมือนคีย์ มันคือเซฟตี้เน็ตแบบคำสั่งเดียวสำหรับความผิดพลาดที่แพงที่สุดในรายการนี้ และคุณสามารถให้ AI เชื่อมมันเข้ากับ (Continuous Integration — หุ่นยนต์ที่รันการตรวจสอบของคุณโดยอัตโนมัติทุกครั้งที่คุณ push โค้ด) เพื่อให้มันรันทุกครั้งที่ push