# /lagune-prove: proof of concept เพื่อการป้องกันเท่านั้น

> เปลี่ยนข้อตรวจพบแต่ละรายการให้เป็น proof of concept (PoC) ที่รันได้และใช้เพื่อการป้องกันเท่านั้น พร้อมประกาศแจ้งเตือนด้านความปลอดภัยสำหรับการเปิดเผยช่องโหว่อย่างรับผิดชอบ

Canonical: https://lagune.ai/th-TH/docs/commands/prove
ภาษา: th-TH
ต้นฉบับ: https://lagune.ai/docs/commands/prove
อัปเดตล่าสุด: 2026-11-07

🧪 เปลี่ยนข้อตรวจพบแต่ละรายการให้เป็นหลักฐานที่รันได้และใช้เพื่อการป้องกันเท่านั้น สำหรับการเปิดเผยช่องโหว่อย่างรับผิดชอบ

สำหรับข้อตรวจพบทุกรายการในแผนผังจาก detect คำสั่งนี้จะเขียนประกาศแจ้งเตือนด้านความปลอดภัยที่อ่านจบในตัว และการทดสอบที่ยืนยัน **เส้นทางที่ปลอดภัย** การทดสอบจึงล้มเหลวตราบที่ปัญหายังอยู่ และผ่านเมื่อแก้โค้ดแล้ว

**เคล็ดลับ**

การทดสอบของ **Lagune** แยกอยู่ใน `.lagune/` ต่างหากจากชุดการทดสอบของคุณเอง

## วิธีใช้

**ข้อตรวจพบทุกรายการ**

```prompt
/lagune-prove
```

**ข้อตรวจพบที่ระบุชื่อ**

ดูชื่อข้อตรวจพบที่ติดตามอยู่แล้ว:

```prompt
npx lagune read list --findings

# Findings
#   ...
#   • SQL injection ในการค้นหาผู้ใช้
#   ...
```

```prompt
# จากนั้นพิสูจน์หนึ่งในนั้น
/lagune-prove SQL injection ในการค้นหาผู้ใช้
```

## หลักการทำงาน

คำสั่งนี้อ่านซอร์สโค้ดที่ข้อตรวจพบแต่ละรายการชี้ไป แล้วเขียนไดเรกทอรีหนึ่งไดเรกทอรีต่อข้อตรวจพบที่พิสูจน์ได้ไว้ใต้ `.lagune/proofs/` โดยแต่ละไดเรกทอรีมีไฟล์ 2 ไฟล์พอดี:

| ไฟล์                            | คืออะไร                                                                                                                       |
| ------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
| `report.test.mjs` (หรือ `.cjs`) | ตัวการทดสอบ รันบน Poku ถ้าโปรเจกต์ของคุณใช้อยู่แล้ว ถ้าไม่ใช้ก็รันบนตัวรันการทดสอบที่มากับ Node.js จึงไม่ต้องติดตั้งอะไรเพิ่ม |
| `report.md`                     | ประกาศแจ้งเตือนด้านความปลอดภัยที่อ่านจบในตัว: ระดับความรุนแรง ผลกระทบ วิธีทำให้ปัญหาเกิดซ้ำ และคำสั่งสำหรับรัน                |

การพิสูจน์เขียนด้วย JavaScript เสมอ จึงนำไปใช้ได้ทุกที่ไม่ว่าโปรเจกต์ของคุณจะเขียนด้วยภาษาใด ไฟล์ดัชนี `README.md` ลิงก์ไปยังการพิสูจน์ทุกรายการ และให้คำสั่งเดียวสำหรับรันทั้งหมด

**เคล็ดลับ**

- คำสั่งนี้ **ไม่บังคับและทำงานแยกเป็นอิสระ**: ไม่ได้เป็นหนึ่งใน 5 เฟส และไม่ได้เป็นส่วนหนึ่งของห่วงโซ่การติดตาม
- คำสั่งนี้เขียนลงใน `.lagune/proofs/` เท่านั้น และไม่แตะต้องอาร์ติแฟกต์ของเฟสหรือโค้ดของคุณ ซึ่งคำสั่งนี้อ่านอย่างเดียว
- ข้อตรวจพบที่การทดสอบทำให้ปัญหาเกิดซ้ำไม่ได้จะไม่ได้รับการพิสูจน์ และคำสั่งนี้จะบอกให้คุณรัน [`/lagune-detect`](https://lagune.ai/th-TH/docs/commands/detect) กับจุดนั้นเพื่อปรับให้ตรงกับสภาพปัจจุบัน
- รันซ้ำเพื่อปรับการพิสูจน์ให้ตรงกับสภาพปัจจุบัน: คำสั่งนี้จะลบไดเรกทอรีของข้อตรวจพบที่หายไปแล้วหรือทำให้เกิดซ้ำไม่ได้อีก

**หมายเหตุ**

**คำสั่งนี้รันเฉพาะเมื่อคุณเรียกใช้เท่านั้น:** เอเจนต์ไม่เริ่มรันเอง

**ต้องรัน detect ก่อน**

prove อ่านแผนผังจาก [`/lagune-detect`](https://lagune.ai/th-TH/docs/commands/detect) จึงต้องรัน detect ก่อน

## เพื่อการป้องกันเท่านั้น และต้องได้รับอนุญาต

ก่อนสร้างอะไรก็ตาม คำสั่งนี้จะยืนยันว่าคุณได้รับอนุญาตให้ทดสอบเป้าหมายนั้น และปฏิเสธทุกคำขอที่ต้องการ exploit ที่ใช้งานได้จริง payload สำหรับโจมตี หรือการหลบเลี่ยงการตรวจจับ การพิสูจน์แสดงพฤติกรรมที่ปลอดภัย และไม่สร้างอินพุตสำหรับโจมตีเลย

## จากการพิสูจน์สู่การเปิดเผยช่องโหว่

ไฟล์ทั้ง 2 ไฟล์ของข้อตรวจพบที่พิสูจน์ได้แต่ละรายการควรอยู่ด้วยกันใน **GitHub Gist แบบส่วนตัว** เพื่อรายงานช่องโหว่ ไฟล์เหล่านี้เป็นหลักฐานของปัญหาที่ยังมีอยู่และยังไม่เปิดเผย `.gitignore` ใน `.lagune/proofs/` จึงกันไฟล์เหล่านี้ไว้นอกทุก commit: แชร์ผ่าน Gist นั้นเท่านั้นจนกว่าผู้ดูแลจะแก้ปัญหาเสร็จ

การปิดข้อตรวจพบในห่วงโซ่ของ **Lagune** ยังเป็นหน้าที่ของ [`/lagune-harden`](https://lagune.ai/th-TH/docs/commands/harden) และ [`/lagune-verify`](https://lagune.ai/th-TH/docs/commands/verify): prove สร้างหลักฐาน แต่ไม่ได้ปิดอะไร

## คำถามที่พบบ่อย

### Lagune สร้าง exploit ไหม

ไม่ /lagune-prove เขียนหลักฐานเพื่อการป้องกันเท่านั้น: การทดสอบที่ยืนยันเส้นทางที่ปลอดภัย ซึ่งล้มเหลวตราบที่ปัญหายังอยู่และผ่านเมื่อแก้โค้ดแล้ว พร้อมประกาศแจ้งเตือนด้านความปลอดภัยสำหรับการเปิดเผยช่องโหว่อย่างรับผิดชอบ

### prove สร้างอะไรออกมา

ไฟล์ 2 ไฟล์ต่อข้อตรวจพบหนึ่งรายการ: การทดสอบ (report.test.mjs หรือ .cjs) และประกาศแจ้งเตือนด้านความปลอดภัย (report.md)

### จะเปิดเผยบั๊กที่ Lagune พบอย่างรับผิดชอบได้อย่างไร

prove เขียนประกาศแจ้งเตือนด้านความปลอดภัยที่อ่านจบในตัว ซึ่งคุณแชร์ผ่านช่องทางส่วนตัวได้ เช่น GitHub Gist แบบส่วนตัว ตามแนวทางการเปิดเผยช่องโหว่อย่างรับผิดชอบ
