> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cloudthinker.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Kiểm thử ứng dụng staging bằng Cyber

> Chạy một lượt kiểm thử Cyber có phạm vi trên ứng dụng staging với hai người dùng thử nghiệm, đọc bằng chứng đằng sau mỗi phát hiện và xác nhận bản sửa bằng một lần kiểm tra lại.

Trước khi phát hành, bạn muốn biết liệu một khách hàng có đọc được đơn hàng của khách hàng khác trong staging hay không. Hướng dẫn này chạy một lượt kiểm thử Cyber giới hạn trong các đường dẫn cửa hàng và đơn hàng, với hai người dùng thử nghiệm, và theo dõi một phát hiện đã được chứng minh cho đến khi có bản sửa đã xác minh.

## Tình huống

Nhóm của bạn sẽ phát hành trang lịch sử đơn hàng mới vào tuần tới. Staging chạy tại `https://staging.shop.example.com`. Khu vực thanh toán và quản trị thuộc về một nhóm khác và phải nằm ngoài phạm vi kiểm thử. Bạn có hai tài khoản thử nghiệm, mỗi tài khoản ở một tenant, và bạn muốn có bằng chứng cho mọi vấn đề, chứ không phải một danh sách phỏng đoán.

## Điều kiện tiên quyết

* Một môi trường staging mà bạn được phép kiểm thử, và quyền truy cập bản ghi DNS của staging để xác minh tên miền.
* Quyền admin của workspace, hoặc một admin có thể xác minh tên miền thay bạn.
* Hai tài khoản thử nghiệm trong ứng dụng, ở hai tenant khác nhau.
* Một [kết nối Git provider](https://docs.cloudthinker.io/vi/guide/connections/github.md) với repository của ứng dụng, nếu bạn muốn CloudThinker soạn bản sửa.

[Cyber quickstart](https://docs.cloudthinker.io/vi/guide/security/cyber-quickstart.md) trình bày chi tiết hơn từng màn hình thiết lập.

## Hướng dẫn từng bước

**1. Đăng ký ứng dụng và xác minh tên miền**

Nhấn **Cyber** trên thanh bên, rồi **Register an App** (hoặc **New app** nếu bạn đã có ứng dụng). Nhập **App name**, **Application URL** và chọn **Web application** trong **What to test**. Trong **Target ownership**, nhấn **Create DNS proof**, thêm bản ghi TXT tại nhà cung cấp DNS và nhấn **Check again**.

**Bạn sẽ thấy:** **Target ownership** hiển thị **Verified**.

**2. Thêm cả hai người dùng thử nghiệm**

Trên **Access**, nhấn **Add test user** hai lần. Đặt cho mỗi người dùng một **Identity label** và **Tenant** rõ ràng, ví dụ `customer-a` trong `Tenant A` và `customer-b` trong `Tenant B`. Với hai người dùng, Cyber có thể kiểm tra liệu một người có truy cập được dữ liệu của người kia hay không.

**3. Chọn Safe và lưu mà không chạy**

Trên **Start**, kiểm tra **Coverage status** và nhấn **Show limited checks** để xem lượt chạy này không kiểm tra được gì. Trong **Testing intensity**, chọn **Safe**, chế độ chỉ gửi request đọc. Nhấn **Run later**, vì phần thiết lập không có bước phạm vi.

**4. Đặt phạm vi**

Ở phần đầu ứng dụng, nhấn **Settings**, rồi **Manage scope** trong **Scope**:

| Danh sách | Quy tắc |
| - | - |
| **Include paths** | `/shop/**`, `/orders/**`, `/api/orders/**` |
| **Exclude paths** | `/admin/**`, `/api/payments/**` |

Nhấn **Save scope**. Đường dẫn khớp cả hai danh sách sẽ bị loại trừ.

**Bạn sẽ thấy:** **Scope saved**, và phần tóm tắt **Scope** đếm số quy tắc của bạn thay vì hiển thị **Full target**.

**5. Chạy lượt kiểm thử**

Nhấn **Run test** ở phần đầu ứng dụng, kiểm tra **Safe** đã được chọn và nhấn **Run Safe test**. Lượt chạy có thể mất đến ba giờ và tiêu tốn credit. Bạn có thể rời trang và xem tab **Runs** của ứng dụng sau.

**Bạn sẽ thấy:** một lượt chạy được đánh dấu **Running**, với dòng thời gian trực tiếp về những gì Cyber đang kiểm thử.

**6. Đọc bằng chứng**

Khi lượt chạy hiển thị **Success**, mở tab **Findings**. **Confirmed** liệt kê các phát hiện đã xác minh mà Cyber tái hiện được. Mở một phát hiện, ví dụ `customer-b` đọc đơn hàng của `customer-a` qua `/api/orders/{id}`. Trong **API evidence**, bạn thấy chính xác request và response chứng minh lỗ hổng, với các secret đã được che.

Để hỏi về một manh mối trong **Needs verification**, mở menu **⋯** của manh mối đó và chọn **Chat with finding**:

```text theme={null}
Which request and identity would prove this lead? Is the same check missing on the other /api/orders endpoints in scope?
```

**7. Sửa và kiểm tra lại**

Trên phát hiện đã xác nhận, nhấn **I'm working on this**, rồi **Create PR with agent**. Trong cuộc chat mở ra, nêu điều bạn muốn:

```text theme={null}
Add the tenant ownership check to every /api/orders handler, with a test that customer-b gets 404 for customer-a's order.
```

Mọi thay đổi do agent thực hiện đều đi qua [Approvals](https://docs.cloudthinker.io/vi/guide/approvals/overview.md) của workspace trước. Ở chế độ mặc định **Auto · Rules + AI · Ask me**, AI judgment có thể cho một thay đổi an toàn chạy mà không cần hỏi. Allow Rule cũng vậy, sau khi CloudThinker bật [Rule enforcement](https://docs.cloudthinker.io/vi/guide/approvals/rules.md#khắc-phục-sự-cố) cho workspace của bạn. Chọn **Manual** nếu bạn muốn tự phê duyệt mọi thay đổi.

Review và kiểm thử pull request, merge rồi deploy lên staging. Sau đó nhấn **Ready for retest** và chạy lại lượt kiểm thử.

**Bạn sẽ thấy:** nếu bằng chứng không còn tái hiện được, phát hiện chuyển sang **Verified fixed**. Nếu vẫn tái hiện được, phát hiện vẫn mở.

## Vì sao cách làm này hiệu quả

* **Quyền sở hữu được xác minh trước.** Cyber chỉ kiểm thử tên miền mà bạn đã chứng minh mình kiểm soát. Xem [Chạy kiểm thử bảo mật](https://docs.cloudthinker.io/vi/guide/security/security-testing.md).
* **Phạm vi giữ an toàn cho các nhóm khác.** Đường dẫn include và exclude giữ khu vực thanh toán và quản trị nằm ngoài lượt chạy.
* **Hai danh tính tìm ra lỗi thật.** Rò rỉ giữa các tenant chỉ lộ ra khi Cyber có thể đăng nhập với tư cách hai khách hàng.
* **Mọi phát hiện đều đi kèm bằng chứng.** Request và response cho phép bạn tự phát lại request. Xem [Phân loại phát hiện](https://docs.cloudthinker.io/vi/guide/security/cyber-findings.md).
* **Lần kiểm tra lại khép kín quy trình.** Lượt chạy tiếp theo, chứ không phải một ô đánh dấu, đã chuyển phát hiện sang **Verified fixed**.

## Bước tiếp theo

> **[Chạy kiểm thử bảo mật](https://docs.cloudthinker.io/vi/guide/security/security-testing.md)**
>
> Thêm các tùy chọn truy cập, mức cường độ và lịch chạy định kỳ.

> **[Phân loại phát hiện](https://docs.cloudthinker.io/vi/guide/security/cyber-findings.md)**
>
> Xử lý bằng chứng, bản sửa, bỏ qua phát hiện và kiểm tra lại.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.