# การตรวจสอบความปลอดภัยใน Claude Code: คู่มือทีละขั้นตอนและระบบอัตโนมัติด้วย GitHub Action ในปี 2026

> วิธีตรวจสอบความปลอดภัยของโปรเจกต์ vibe ด้วย /security-review ใน Claude Code ขั้นตอนการตั้งค่า เทมเพลต GitHub Action ช่องโหว่ 6 ประเภท และข้อจำกัดตามจริง

Source: https://ailoot.ai/blog/th/claude-code-security-review/
Canonical: https://ailoot.ai/blog/th/claude-code-security-review/
Language: th
Publisher: Ailoot (https://ailoot.ai/)
Translation: guide-212
Revision: sha256-ae6410ee2d0f6cbf0f5e7e3cd9f32138c62d8f1cdead0a2d25cc7d4df12772c0


ผู้เขียนเนื้อหาต้นฉบับเล่าถึงประสบการณ์ของตนว่า “ฉันเพิ่งรัน security-review กับโปรเจกต์ vibe ของตัวเอง แล้วทีมก็พบปัญหาจริงหลายจุดภายใน 4 นาที ซึ่งแก้ไขไปแล้ว” งานแบบเดียวกันนี้เคยใช้เวลาทั้งวันสำหรับที่ปรึกษาภายนอก

เนื้อหาเพิ่มเติมเกี่ยวกับการกำหนดค่าเครื่องมืออยู่ใน[เอกสารประกอบของ Ailoot](https://ailoot.ai/docs/)

<div class="aside" data-semantic="ailoot-cta" role="note" aria-label="คู่มือ Ailoot">

[คู่มือ Ailoot](https://ailoot.ai/docs/)

</div>

## /security-review ใน Claude Code คืออะไร?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="ประเด็นสำคัญของส่วน">

ประเด็นสำคัญ

`/security-review` เป็นคำสั่งในตัวของ Claude Code ที่วิเคราะห์ความปลอดภัยของทั้งโปรเจกต์หรือการเปลี่ยนแปลงปัจจุบันได้โดยตรงจากเทอร์มินัล Anthropic เปิดตัวคำสั่งนี้เมื่อวันที่ 20 กุมภาพันธ์ 2026 โดยเป็นส่วนหนึ่งของ Claude Code Security และเปิดให้ผู้ใช้ Pro, Max และ API Console ทุกคนใช้งานได้ ค่าใช้จ่ายของคำขอจะหักจากยอดคงเหลือ Claude API ตามปกติของคุณ

</div>

คำสั่งนี้ทำงานได้สองรูปแบบ แบบในเครื่อง: รัน `/security-review` ในเทอร์มินัล แล้ว Claude จะอ่าน repository และสร้างรายงาน แบบฝั่งเซิร์ฟเวอร์: ติดตั้ง engine เดียวกันเป็น GitHub Action เพื่อให้แสดงความคิดเห็น inline ในทุก Pull Request โดยอัตโนมัติ

ต่างจากเครื่องมือสแกน SAST แบบดั้งเดิม (Snyk Code, Semgrep, SonarQube) `/security-review` ไม่ได้ทำงานตามกฎตายตัว แต่จะอ่านโค้ดเหมือนวิศวกรที่กำลังตรวจสอบอยู่จริง โดยติดตามการไหลของข้อมูล ทำความเข้าใจว่าคุณใช้ framework ใดและขอบเขตความเชื่อถืออยู่ตรงไหน พร้อมตรวจพบช่องโหว่ที่ไม่มีกฎข้อใดอธิบายไว้

<figure>
<blockquote>
<p>Claude Code Security อ่านและให้เหตุผลเกี่ยวกับโค้ดของคุณเหมือนนักวิจัยด้านความปลอดภัยที่เป็นมนุษย์ โดยทำความเข้าใจว่าคอมโพเนนต์ต่าง ๆ ทำงานร่วมกันอย่างไร ติดตามการเคลื่อนที่ของข้อมูลภายในแอปพลิเคชัน และตรวจพบช่องโหว่ซับซ้อนที่เครื่องมือซึ่งอาศัยกฎมักมองข้าม</p>
</blockquote>
<figcaption>— Anthropic, https://www.anthropic.com/news/claude-code-security</figcaption>
</figure>

ไม่ได้หมายความว่า `/security-review` จะใช้แทนการทดสอบเจาะระบบจากภายนอกหรือการทดสอบจริงในสภาพแวดล้อม staging ได้ ช่วยทำส่วนหนึ่งของรีวิวโค้ดเบื้องต้นอัตโนมัติได้ แต่บทความไม่ได้วัดสัดส่วนความครอบคลุม audit ต่อไปนี้ฉันจะอธิบายวิธีใช้งานให้ถูกต้องและสิ่งที่ Claude จะพบในโปรเจกต์ของคุณ

## รัน /security-review ใน 5 ขั้นตอนได้อย่างไร?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="ประเด็นสำคัญของส่วน">

ประเด็นสำคัญ

อัปเดต Claude Code เป็นเวอร์ชันล่าสุด เปิดโปรเจกต์ในเทอร์มินัล รัน `/security-review` รอรายงาน (1 ถึง 5 นาทีสำหรับโปรเจกต์ทั่วไป) อ่านผลการประเมินระดับความรุนแรง แล้วขอให้ Claude แก้ไขปัญหา คำสั่งนี้ใช้ได้กับทุก stack เช่น Next.js, Django, FastAPI, Rails, Go และ Rust ไม่ต้องตั้งค่าพิเศษ

</div>

**ขั้นตอนที่ 1. อัปเดต Claude Code** คำสั่งนี้ใช้งานได้ตั้งแต่รุ่นที่เผยแพร่เมื่อวันที่ 20 กุมภาพันธ์ 2026

```bash
claude update
```

หากติดตั้ง Claude Code ผ่าน npm คุณก็ทำได้เช่นกัน:

```bash
npm install -g @anthropic-ai/claude-code@latest
```

ตรวจสอบว่า `/security-review` ปรากฏขึ้นแล้ว:

```bash
claude /help | grep security
```

**ขั้นตอนที่ 2. เปิดโปรเจกต์และลงชื่อเข้าใช้ Claude Code**

```bash
cd ~/projects/my-vibe-project
claude
```

**ขั้นตอนที่ 3. รันคำสั่ง** ใน Claude Code ให้พิมพ์คำสั่งนี้:

```
/security-review
```

Claude จะดำเนินการวิเคราะห์ 3 ระยะโดยอัตโนมัติ:

1. **การสำรวจบริบทของ repository (Repository Context Research)** - อ่านโครงสร้างและระบุ stack, routes และคำสั่งค้นฐานข้อมูล
2. **การวิเคราะห์เปรียบเทียบ (Comparative Analysis)** - เปรียบเทียบสถานะปัจจุบันกับรูปแบบช่องโหว่ที่พบบ่อยใน stack นี้
3. **การประเมินช่องโหว่ (Vulnerability Assessment)** - แสดงข้อสงสัยแต่ละรายการพร้อมระดับความเชื่อมั่นในสเกล 1-10 โดยรวมเฉพาะผลการตรวจพบที่มีระดับความเชื่อมั่น ≥ 8 ไว้ในรายงาน

**ขั้นตอนที่ 4. อ่านรายงาน** ผลลัพธ์อยู่ในรูปแบบตาราง Markdown สำหรับแต่ละปัญหา Claude จะระบุ:

- **ไฟล์และหมายเลขบรรทัด** (เช่น `src/auth/login.ts:42`)
- **ระดับความรุนแรง** (HIGH / MEDIUM / LOW)
- **หมวดหมู่** (`sql_injection`, `xss`, `auth_bypass`, `insecure_storage`)
- **คำอธิบาย** - มีอะไรผิดพลาด
- **สถานการณ์การโจมตี** - ผู้โจมตีอาจนำไปใช้ประโยชน์อย่างไร
- **คำแนะนำ** - วิธีแก้ไข

**ขั้นตอนที่ 5. ขอให้ Claude แก้ไขปัญหา** หลังจากนั้น คุณสามารถทำงานกับ Claude เหมือน agent ทั่วไปได้:

> “แก้ไขปัญหาระดับ HIGH จากรายงานทีละรายการ พร้อมคำอธิบาย PR”

Claude จะเปิดแต่ละไฟล์และเสนอการเปลี่ยนแปลง จากนั้นคุณยืนยัน ในโปรเจกต์จริง ฉันปิดผลการตรวจพบ 5 รายการได้ภายใน 40 นาที แทนที่จะใช้เวลา 3 ชั่วโมงตามที่วางแผนไว้

<div class="aside" data-semantic="ailoot-cta" role="note" aria-label="คู่มือ Ailoot">

[คู่มือ Ailoot](https://ailoot.ai/docs/)

</div>

## /security-review ตรวจพบช่องโหว่อะไรบ้าง?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="ประเด็นสำคัญของส่วน">

ประเด็นสำคัญ

Claude ตรวจพบช่องโหว่ 6 ประเภท ได้แก่ SQL injection และ injection ทั่วไป, XSS, ปัญหาการยืนยันตัวตนและการอนุญาตสิทธิ์, การรั่วไหลของข้อมูลสำคัญ, ช่องโหว่ใน dependencies ของบุคคลที่สาม และ secrets ที่ฝังไว้ในโค้ด คำสั่งนี้ยังจัดการตรรกะการยืนยันตัวตนที่กระจายอยู่ในหลายไฟล์ได้ ซึ่งเครื่องมือสแกนที่อาศัยกฎทำไม่ได้

</div>

รายการทั้งหมดที่รวมอยู่ในการวิเคราะห์โดยค่าเริ่มต้นอธิบายไว้ใน[เอกสารอย่างเป็นทางการของ Anthropic](https://support.claude.com/en/articles/11932705-automated-security-reviews-in-claude-code):

| หมวดหมู่ | สิ่งที่ค้นหา |
|----|----|
| **SQL injection** | การต่อสตริงโดยตรงใน SQL, การเรียก ORM ที่ไม่ปลอดภัย (`raw()` โดยไม่มีพารามิเตอร์), Prisma `$queryRawUnsafe` |
| **XSS** | การแสดงผลด้วย `dangerouslySetInnerHTML` โดยไม่ทำ sanitization, ระบบเทมเพลตที่ไม่มีการ escape อัตโนมัติ, `innerHTML` ที่มาจากข้อมูลผู้ใช้ |
| **ข้อบกพร่องด้านการยืนยันตัวตน** | token ที่นำกลับมาใช้ซ้ำได้, ไม่มีการตรวจสอบสิทธิ์ใน API routes, JWT ที่ไม่มีวันหมดอายุ, session fixation |
| **การจัดการข้อมูลที่ไม่ปลอดภัย** | การตรวจสอบความถูกต้องเฉพาะฝั่ง client, การตอบกลับที่มีฟิลด์เกินจำเป็น (over-fetching), open redirect |
| **ช่องโหว่ใน dependencies** | npm/pip/cargo packages เวอร์ชันที่มีช่องโหว่ โดยตรวจสอบผ่าน `npm audit` และคำสั่งเทียบเท่า |
| **Secrets** | API keys ที่ฝังไว้ในโค้ด, tokens ใน `.env.example`, รหัสผ่านในโค้ด |

นอกจากนี้ คำสั่งยังครอบคลุมหมวดหมู่ที่เครื่องมือสแกนอัตโนมัติมักตรวจไม่พบ:

- **Command injection** - เรียกใช้ข้อมูลจากผู้ใช้ใน shell (`child_process.exec(userInput)`)
- **Path traversal** - โหลดไฟล์ด้วย `../../etc/passwd`
- **XXE** - XML ที่มี external entities
- **Template injection** - SSTI ใน Jinja/Handlebars/EJS
- **NoSQL injection** - operators `$ne`, `$gt` ในคำสั่งค้น MongoDB
- **การใช้คริปโตกราฟีผิดวิธี** - ใช้ MD5, โหมด ECB หรือ IV แบบคงที่

Claude กำหนดระดับความรุนแรงให้ผลการตรวจพบแต่ละรายการ โดยใช้สเกลง่าย ๆ ดังนี้:

- **HIGH** - โจมตีจากระยะไกลได้โดยไม่ต้องยืนยันตัวตน หรือข้อมูลรั่วไหลที่กระทบผู้ใช้ทั้งหมด
- **MEDIUM** - ต้องมีเงื่อนไขเพิ่มเติมจึงจะโจมตีได้ (ต้องมี session / ต้องใช้ข้อมูลนำเข้าเฉพาะ)
- **LOW** - เป็นช่องทางที่อาจใช้โจมตีได้ ยังไม่วิกฤตในตอนนี้ แต่ควรแก้ไข

ควรรู้ไว้ว่าในการตั้งค่ามาตรฐาน Claude **จะไม่รายงาน** DoS, rate limiting, memory exhaustion, open redirects ที่ไม่มีผลกระทบพิสูจน์ได้, regex injection / ReDoS หรือการปลอมแปลง log ทั้งนี้ตั้งใจทำเช่นนี้เพื่อไม่ให้คุณได้รับข้อมูลรบกวนมากเกินไป หากหมวดหมู่เหล่านี้สำคัญ ให้เพิ่มกฎเอง (ดูหัวข้อการกรองผลบวกลวงด้านล่าง)

## ตั้งค่า GitHub Action ให้ตรวจสอบอัตโนมัติอย่างไร?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="ประเด็นสำคัญของส่วน">

ประเด็นสำคัญ

Anthropic เผยแพร่ action อย่างเป็นทางการ `anthropics/claude-code-security-review@main` เชื่อมต่อได้ด้วย workflow file เพียงไฟล์เดียว และจะแสดงความคิดเห็น inline ในทุก Pull Request โดยอัตโนมัติเมื่อพบช่องโหว่ ตั้ง `CLAUDE_API_KEY` กับสิทธิ์ workflow Action ทางการเตือนว่ายังไม่ hardened ต่อ prompt injection และควรรีวิว PR ที่เชื่อถือ ตรวจสิทธิ์ผู้ส่งกับ workflow ก่อนเปิด

</div>

**ขั้นตอนที่ 1. รับ API key** ไปที่ [console.anthropic.com](https://console.anthropic.com/) สร้าง API key แล้วคัดลอก

**ขั้นตอนที่ 2. ใส่ key ไว้ใน repository secrets** ใน GitHub ไปที่: Settings → Secrets and variables → Actions → New repository secret ตั้งชื่อ `CLAUDE_API_KEY`; ค่าให้ใส่ key ของคุณ

**ขั้นตอนที่ 3. สร้าง workflow file** บันทึกเป็น `.github/workflows/security.yml`:

```yaml
name: Security Review

permissions:
  pull-requests: write
  contents: read

on:
  pull_request:

jobs:
  security:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          ref: ${{ github.event.pull_request.head.sha || github.sha }}
          fetch-depth: 2

      - uses: anthropics/claude-code-security-review@main
        with:
          comment-pr: true
          claude-api-key: ${{ secrets.CLAUDE_API_KEY }}
```

**ขั้นตอนที่ 4. รวม branch เข้า main** action จะเริ่มทำงานโดยอัตโนมัติเมื่อมี PR ถัดไป

**สิ่งที่ action ทำ:**

- ทำงานเมื่อมี Pull Request ที่เปิดอยู่ / มีการ synchronize
- นำ diff ระหว่าง branch ของ PR กับ main
- เรียกใช้ engine เดียวกับ `/security-review` ในเครื่อง
- โพสต์ความคิดเห็น inline ตรงบรรทัดโค้ดที่พบข้อสงสัย
- ทำสำเนารายงานฉบับเต็มไว้ใน Job Summary

**รายละเอียดสำคัญใน `permissions`:**

- `pull-requests: write` - เพื่อโพสต์ความคิดเห็น inline
- `contents: read` - เพื่ออ่านโค้ด ไม่มี `write` action ไม่แก้ไขโค้ดเอง แต่รายงานผลเท่านั้น

สิทธิ์ชุดนี้เพียงพอสำหรับ repository ส่วนตัว สำหรับ repo สาธารณะ คุณอาจระบุ `actions: read` เพิ่มได้หากใช้ reusable workflows

## กรองผลบวกลวงและเปลี่ยนระดับความไวได้อย่างไร?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="ประเด็นสำคัญของส่วน">

ประเด็นสำคัญ

action มี inputs 9 รายการที่ใช้กำหนดพฤติกรรมให้เหมาะกับโปรเจกต์ได้ รายการหลัก ได้แก่ `exclude-directories` (เช่น `tests/,fixtures/`), `false-positive-filtering-instructions` (พาธไปยังไฟล์ md ที่มีกฎของคุณในลักษณะ “นี่ไม่ใช่ช่องโหว่เพราะ...”) และ `custom-security-scan-instructions` สำหรับการตรวจสอบเฉพาะด้านเพิ่มเติม

</div>

ตาราง inputs ทั้งหมดของ GitHub Action ([แหล่งที่มา: README ของ repository](https://github.com/anthropics/claude-code-security-review)):

| Input | ค่าเริ่มต้น | หน้าที่ |
|----|----|----|
| `claude-api-key` | \- | API key ของ Anthropic จำเป็นต้องระบุ |
| `comment-pr` | `true` | จะโพสต์ความคิดเห็น inline ใน PR หรือไม่ |
| `upload-results` | `true` | จะบันทึกผลลัพธ์เป็น artifact ไว้ 90 วันหรือไม่ |
| `exclude-directories` | \- | คั่นรายการด้วยจุลภาค: `tests/,docs/,fixtures/` |
| `claude-model` | `claude-opus-4-1-20250805` | โมเดลที่จะใช้ |
| `claudecode-timeout` | `20` | ระยะหมดเวลาเป็นนาที |
| `run-every-commit` | `false` | รันทุกครั้งที่ push ไม่ใช่เฉพาะ PR |
| `false-positive-filtering-instructions` | \- | พาธไปยังไฟล์ md ที่มีกฎของคุณ |
| `custom-security-scan-instructions` | \- | พาธไปยังไฟล์ md ที่มีการตรวจสอบเพิ่มเติม |

**ตัวอย่างการตั้งค่าการกรองผลบวกลวง** สร้างไฟล์ `.claude/security/false-positives.md`:

```markdown
# กฎการกรองผลบวกลวงสำหรับโปรเจกต์ของเรา

- การใช้ `dangerouslySetInnerHTML` ทุกกรณีภายใน `src/lib/email/layout.ts` ปลอดภัย -
  HTML ประกอบขึ้นจากเทมเพลตที่เชื่อถือได้ และผ่าน `sanitize-html`
  ตอนเขียนลงฐานข้อมูล ไม่ใช่ตอนแสดงผล
- อย่ารายงาน API keys สำหรับทดสอบที่ฝังไว้ใน `__tests__/fixtures/*.ts`
  keys ทั้งหมดขึ้นต้นด้วย `sk-test-fake-`
- การต่อ SQL ใน `src/lib/admin/migrations.ts` ยอมรับได้ - ไฟล์นี้ทำงาน
  ในฐานะ root เท่านั้น และข้อมูลนำเข้ามาจาก environment variables
```

เชื่อมต่อไฟล์นี้ใน workflow:

```yaml
- uses: anthropics/claude-code-security-review@main
  with:
    comment-pr: true
    claude-api-key: ${{ secrets.CLAUDE_API_KEY }}
    false-positive-filtering-instructions: .claude/security/false-positives.md
```

**คำสั่งสแกนความปลอดภัยแบบกำหนดเอง** ก็ทำในลักษณะเดียวกัน สร้างไฟล์ที่มีกฎซึ่งสำคัญต่อโปรเจกต์ของคุณโดยเฉพาะ:

```markdown
# การตรวจสอบเพิ่มเติมสำหรับโปรเจกต์ของเรา

- endpoint ทุกตัวภายใต้ `/api/admin/*` ต้องตรวจสอบบทบาทผู้ดูแลระบบ
  ผ่าน wrapper ที่ใช้ร่วมกัน หากไม่มี wrapper นี้ ให้จัดเป็นระดับ HIGH
- webhooks ของ YooKassa / CloudPayments ทุกตัวต้องตรวจสอบลายเซ็นก่อน
  แยกวิเคราะห์ body หากไม่ทำ ให้จัดเป็นระดับ HIGH
- magic-link tokens ต้องใช้ได้ครั้งเดียว (ทำเครื่องหมายว่าใช้แล้วหลังจาก
  คำขอที่ถูกต้องครั้งแรก) tokens ที่ใช้ซ้ำได้ให้จัดเป็นระดับ MEDIUM
```

นี่ไม่ใช่ preset ของ Anthropic อีกต่อไป แต่เป็นการถ่ายทอดความเชี่ยวชาญเกี่ยวกับโปรเจกต์ของคุณลงในกฎที่ Claude ใช้ทุกครั้ง นี่คือหัวใจของ “ให้ความสำคัญกับวิธีการมากกว่าโมเดล”

ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีจัดการ context สำหรับ Claude ได้ในคู่มือ [“วิธีกำหนดค่า CLAUDE.md”](https://ailoot.ai/blog/th/claude-md-template/) และ [“Second Brain ใน Claude Code”](https://ailoot.ai/blog/th/claude-code-second-brain/)

## Claude ตรวจไม่พบอะไร และเพราะเหตุใด: ข้อจำกัดตามจริง

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="ประเด็นสำคัญของส่วน">

ประเด็นสำคัญ

การรีวิวโค้ดเองไม่ได้ทดลองแอปที่รันหรือยืนยัน environment ที่ deploy มันอาจชี้ race conditions ตรรกะธุรกิจ หรือ config ที่สงสัยในโค้ดได้ แต่ต้องใช้ staging tests กับตรวจ deployment จริงเพื่อยืนยันพฤติกรรมและความเสี่ยงที่เหลือ

</div>

Anthropic ระบุชัดเจนว่าสิ่งใดถูกปิดไว้โดยค่าเริ่มต้นและเพราะเหตุใด ([แหล่งที่มา: README ของ repository](https://github.com/anthropics/claude-code-security-review)):

- **Denial of Service** - สร้างข้อมูลรบกวนมากเกินไปและแทบไม่มีผลกระทบรุนแรง
- **ข้อกังวลเรื่อง Rate limiting** - จัดการในระดับโครงสร้างพื้นฐาน ไม่ใช่ในโค้ด
- **การใช้หน่วยความจำ / CPU จนหมด** - เช่นเดียวกัน
- **การตรวจสอบข้อมูลนำเข้าทั่วไปโดยไม่มีผลกระทบที่พิสูจน์ได้** - การตรวจสอบทุกฟิลด์ทำให้เกิดผลบวกลวงจำนวนมาก
- **Open redirect** - มักเป็นพฤติกรรมที่ตั้งใจไว้

สิ่งที่รีวิวโค้ดอย่างเดียวตรวจให้ครบไม่ได้หากไม่มีหลักฐาน runtime หรือ deployment:

- **การตั้งค่าเซิร์ฟเวอร์ production** NGINX headers, CORS policies, TLS settings และพอร์ตที่เปิดรับการเชื่อมต่อ ต้องตรวจสอบด้วยตนเองในสภาพแวดล้อม staging
- **Race conditions** เช่น การจ่ายเงินคืนซ้ำซ้อนเมื่อมีคำขอคืนเงินพร้อมกัน การวิเคราะห์ static ชี้รูปแบบน่าสงสัยได้ แต่พฤติกรรมพร้อมกันยังต้องทดสอบ
- **ข้อบกพร่องในตรรกะธุรกิจด้านการชำระเงิน** หากคำนวณยอดรวมคำสั่งซื้อที่ฝั่ง client แล้วส่งไปยังผู้ให้บริการชำระเงินตรง ๆ นั่นมีระดับความรุนแรง HIGH แต่ Claude อาจมองไม่เห็นรูปแบบนี้เสมอไปหากไม่มีบริบทชัดเจนเกี่ยวกับวิธีการทำงานของการชำระเงิน
- **IDOR ระดับฐานข้อมูล** หากคำสั่งค้น `SELECT * FROM orders WHERE id = $1` ไม่ตรวจ `WHERE user_id = $session.userId` Claude มักตรวจพบ แต่หากตรวจสอบผ่าน ORM middleware และ Claude มองไม่เห็นการไหลของข้อมูลทั้งหมด ก็อาจพลาดได้
- **การต้านทาน social engineering / phishing** เรื่องนี้ไม่เกี่ยวกับโค้ด

ใช้ `/security-review` เป็นรีวิว static เริ่มต้น ตามด้วยการทดสอบ dynamic ใน staging การตรวจบทบาทกับสิทธิ์ SAST ที่เกี่ยวข้อง และตรวจ config ที่ deploy จริง เช่น Coolify / Nginx / Redis / S3 ที่นี่ยังไม่ยืนยันเปอร์เซ็นต์ครอบคลุมที่วัดแล้ว

กำหนดขอบเขตและเวลาประเมินภายนอกจากความเสี่ยงกับการเปลี่ยนระบบ ทั้งคำสั่งเดียวและ audit ภายนอกเป็นระยะไม่ยืนยันความปลอดภัยครอบคลุม 100%

## ผู้เขียนเนื้อหาต้นฉบับตรวจสอบความปลอดภัยของโปรเจกต์ vibe อย่างไร

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="ประเด็นสำคัญของส่วน">

ประเด็นสำคัญ

ฉันรัน `/security-review` กับโปรเจกต์ TypeScript ของตัวเองที่ใช้ Next.js, Prisma, PostgreSQL และ Redis ภายใน 4 นาที คำสั่งทำการตรวจสอบเบื้องต้นและพบปัญหาหลายรายการที่มีหลักฐานรองรับอย่างดีและมีระดับความรุนแรงแตกต่างกัน สุดท้ายฉันแก้ไขปัญหาที่ใช้งานได้จริงเสร็จภายในหนึ่งชั่วโมงครึ่ง วิธีนี้ถูกกว่าและเร็วกว่าการทดสอบเจาะระบบจากภายนอกทุกแบบ

</div>

พบอะไรบ้าง ภาพโดยทั่วไปของโปรเจกต์ vibe ทั่วไปในขั้น “ทำงานบน production ได้แล้ว แต่ยังไม่ได้ตรวจสอบ”: มีข้อสงสัยหลายจุดเกี่ยวกับขั้นตอนการยืนยันตัวตน ตรรกะการประมวลผล webhooks จากระบบชำระเงิน การจัดการอัปโหลดไฟล์ และข้อสังเกตเฉพาะอีกสองสามจุดเกี่ยวกับการจัดการ HTML ขณะ render ฉันจะไม่เปิดเผยรายละเอียดต่อสาธารณะ เพราะมีคำแนะนำบางส่วนที่นำไปใช้แล้ว ส่วนที่เหลือยังอยู่ใน PR การสแกนแรกในโปรเจกต์ที่รายงานมีประโยชน์และเร็ว แต่ไม่ยืนยันเปอร์เซ็นต์ audit หรือเวลาจบทั่วไป

สิ่งที่ฉันตัดออกว่าเป็นผลบวกลวง:

- ผลการตรวจพบเกี่ยวกับ DoS จาก regex ในการตรวจสอบข้อมูลนำเข้า - ภาระงานจริงไม่ได้ตกอยู่กับ regex เหล่านั้น
- ผลการตรวจพบหนึ่งรายการเกี่ยวกับ API key ที่ฝังไว้ในโค้ด - เป็น key สำหรับทดสอบที่มี prefix `fake-` ระบุชัดเจนใน fixtures

ใช้เวลานานเท่าไร การรันเองใช้เวลา 4 นาที อ่านรายงานใช้เวลา 25 นาที การแก้ไขใช้เวลาประมาณหนึ่งชั่วโมงรวมการทดสอบ ทั้งหมดประมาณหนึ่งชั่วโมงครึ่งตั้งแต่ “เริ่มต้น” จนถึง “ทุกอย่างอยู่ใน main” การทดสอบเจาะระบบจากภายนอกบนพื้นที่เดียวกันใช้เวลาหนึ่งสัปดาห์ตามปฏิทินและมีค่าใช้จ่ายสูงกว่าหลายสิบเท่า

`/security-review` ให้ข้อค้นพบระดับโค้ดที่มีประโยชน์ได้ ดังที่ผู้เขียนรายงานสแกนสี่นาที ต้องรีวิวและทดสอบการแก้ แล้วตรวจ runtime กับ config ที่ deploy แยก การสแกนไม่ได้กำจัดความเสี่ยงความปลอดภัยของโปรเจกต์

## ผสาน /security-review เข้ากับขั้นตอน pre-commit อย่างไร?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="ประเด็นสำคัญของส่วน">

ประเด็นสำคัญ

ก่อน commit การแก้สำคัญ ให้รัน `/security-review` ในเซสชันโปรเจกต์ อ่านข้อค้นพบ แก้ปัญหาที่ตรวจยืนยัน และรัน test ที่เกี่ยวอีกครั้ง นี่เป็นขั้นรีวิว ไม่ใช่ข้อห้าม commit ที่บังคับทางเทคนิค

</div>

hook เดิมที่ใช้ `git_commit`, `--severity HIGH` และ `--fail-on-find` ไม่ใช่สูตรทำงานที่มีเอกสารรองรับ ห้ามใช้เป็น security gate บทความนี้ไม่มี hook บล็อก commit ในเครื่องที่ยืนยันแล้ว GitHub Action ทางการด้านบนให้ข้อค้นพบ PR อัตโนมัติ อย่าอนุมานว่าบล็อก commit หรือ merge เพียงเพราะแสดงความคิดเห็นใน PR

อ่านคำอธิบาย hooks ฉบับเต็มได้ในคู่มือ [“Hooks ใน Claude Code”](https://ailoot.ai/blog/th/claude-code-hooks/)

อีกทางเลือกหนึ่งคือใช้ [routines](https://ailoot.ai/blog/th/claude-code-routines/) สร้าง routine ชื่อ `pre-deploy-check` ที่รัน `/security-review` + `npm run build` + `npm run test` ด้วยคำสั่งเดียว ดูเนื้อหาเพิ่มเติมได้ในเอกสารประกอบของ Ailoot

หากใช้ [MCP servers](https://ailoot.ai/blog/th/mcp-servers-claude-code/) คุณสามารถเชื่อมผลการตรวจพบจาก `/security-review` เข้ากับระบบจัดการเหตุการณ์ (Sentry, Linear, Notion) เพื่อให้ผลการตรวจพบระดับ HIGH แต่ละรายการกลายเป็น ticket โดยอัตโนมัติ

## คำถามที่พบบ่อยเกี่ยวกับ /security-review

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="ประเด็นสำคัญของส่วน">

ประเด็นสำคัญ

คำถามที่พบบ่อย 5 ข้อ: มีค่าใช้จ่ายเท่าไร ควรรันบ่อยแค่ไหน ใช้กับ stack ใดได้บ้าง ควรทำอย่างไรหาก Claude พบช่องโหว่นี้แล้ว และรันเฉพาะบางไฟล์ได้หรือไม่ คำตอบสั้น กระชับ ไม่มีน้ำท่วมทุ่ง

</div>

**รันหนึ่งครั้งมีค่าใช้จ่ายเท่าไร?** ขึ้นอยู่กับขนาดโปรเจกต์ สำหรับโค้ด 30K บรรทัดของฉัน การรันหนึ่งครั้งใช้ยอดคงเหลือ API ประมาณ \$0.30-0.50 ส่วน repository องค์กรขนาดใหญ่ที่มีหนึ่งล้านบรรทัดอาจมีค่าใช้จ่ายสูงถึง \$5-8 ต่อครั้ง ซึ่งถูกกว่าค่าสมัครใช้บริการ SaaS scanner หลายสิบเท่า

**ควรรันในเครื่องบ่อยแค่ไหน?** อย่างน้อยที่สุด ก่อนเผยแพร่ขึ้น production ทุกครั้ง พิจารณารันก่อน commit และ PR ที่สำคัญด้วย แต่บทความนี้ไม่มี hook อัตโนมัติบล็อก commit ที่ยืนยันแล้ว

**ใช้กับ stack ใดได้บ้าง?** ใช้ได้กับทุก stack ที่ Claude อ่านได้ จากการสังเกตของผู้เขียน มีการทดสอบกับ Next.js / Node.js, Python (Django, FastAPI), Go, Rust, PHP (Laravel) และ Ruby on Rails คุณภาพจะต่ำกว่าในภาษาเฉพาะทางมาก ๆ (Erlang, Elixir, Clojure) แต่ก็ยังตรวจพบปัญหาได้บ้าง

**ควรทำอย่างไรหาก Claude พบ “ช่องโหว่” เดิมทุกครั้ง ทั้งที่จริงแล้วไม่ใช่ช่องโหว่?** เพิ่มรายการนั้นใน `false-positive-filtering-instructions` พร้อมอธิบายว่า “ทำไมจึงปลอดภัย” Claude จะหยุดรายงานในการรันครั้งต่อ ๆ ไป

**รันเฉพาะบางไฟล์ได้ไหม?** ได้ เมื่อรันในเครื่อง ให้เรียก `/security-review src/lib/auth/*.ts` ส่วน GitHub Action ตรวจเฉพาะ diff ของ PR ปัจจุบัน ซึ่งโดยทั่วไปก็คือความหมายของ “ไฟล์เฉพาะ”

## แหล่งที่มา

<div class="section" role="doc-bibliography" aria-label="แหล่งที่มา">

### แหล่งที่มา

- [Anthropic - ประกาศเปิดตัว Claude Code Security](https://www.anthropic.com/news/claude-code-security) - ประกาศอย่างเป็นทางการ ลงวันที่ 20 กุมภาพันธ์ 2026
- [ศูนย์ช่วยเหลือ Anthropic - การตรวจสอบความปลอดภัยอัตโนมัติใน Claude Code](https://support.claude.com/en/articles/11932705-automated-security-reviews-in-claude-code) - คำแนะนำอย่างเป็นทางการสำหรับการเรียกใช้
- [GitHub: anthropics/claude-code-security-review](https://github.com/anthropics/claude-code-security-review) - แหล่งที่มาของ GitHub Action พร้อม README ฉบับเต็ม
- [เอกสาร Claude Code - การตรวจสอบโค้ด](https://code.claude.com/docs/en/code-review) - เอกสารทั่วไปของ Anthropic
- [ศูนย์ช่วยเหลือ Anthropic - ใช้ Claude Security](https://support.claude.com/en/articles/14661296-use-claude-security) - ผลิตภัณฑ์ที่เกี่ยวข้อง
- [Port - นำผลการตรวจสอบความปลอดภัยของ Claude Code เข้าระบบ](https://docs.port.io/guides/all/ingest-claude-code-security-reviews/) - เชื่อมผลลัพธ์เข้ากับ Internal Developer Portal
- [บันทึกการเปลี่ยนแปลง Claude Code](https://code.claude.com/docs/en/changelog) - ประวัติการเผยแพร่คำสั่ง

</div>

ดูเนื้อหาเพิ่มเติมได้ใน[เอกสารประกอบของ Ailoot](https://ailoot.ai/docs/)



<div class="aside" data-semantic="ailoot-cta" role="note" aria-label="คู่มือ Ailoot">

[คู่มือ Ailoot](https://ailoot.ai/docs/)

</div>

<div class="aside" data-semantic="ailoot-cta" role="note" aria-label="ไปที่ Ailoot">

[ไปที่ Ailoot](https://ailoot.ai/)

</div>

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

### รายงาน security-review สะอาดพิสูจน์ว่าแอปปลอดภัยหรือไม่?

ไม่พิสูจน์ เป็นรีวิวโค้ดเริ่มต้นที่อาจพลาดและมีการกรอง ตรวจการแก้ ทดลองบทบาทกับความพร้อมกันใน staging และตรวจ config ที่ deploy จริง

### GitHub Action ที่แสดงบล็อก commit หรือ merge อัตโนมัติหรือไม่?

workflow ที่แสดงยังไม่ยืนยันการรับประกันนั้น มันส่งข้อค้นพบใน PR ต้องรีวิวและทดสอบปัญหายืนยัน บทความไม่มี hook บล็อก commit ในเครื่องที่ตรวจแล้ว


## Ailoot · บริษัทและพอร์ตโฟลิโอโครงการของบริษัท

Ailoot อาศัยประสบการณ์การดำเนินงานที่สั่งสม ฐานลูกค้าขนาดใหญ่ บริการที่เสถียร และการติดตาม KPI อย่างต่อเนื่อง

บริษัทและพอร์ตโฟลิโอโครงการของบริษัท: ลูกค้าหลายล้านราย; ยอดขายระดับหลายพันล้านต่อเดือน.

Ailoot นำประสบการณ์การดำเนินงานนี้มาใช้เพื่อให้เข้าถึงฟังก์ชัน AI ผ่าน API ในผลิตภัณฑ์ของลูกค้า เอเจนต์ แอปพลิเคชัน และระบบอัตโนมัติ
