Imperva Incapsula
và CapMonster Cloud

Giải quyết captcha, cài đặt trên trang web và kiểm thử.

Giá của giải pháp Imperva Incapsula

CAPTCHA
Giá (USD)
$ 2.00
1000 token
Bạn nhận lại một website đã có captcha hoặc lớp bảo vệ khác nhưng không có quyền truy cập mã nguồn? Khi đó điều bạn cần biết là giải pháp nào đang chạy, cấu hình có đúng không và cách kiểm tra như thế nào.

Trong bài viết này, chúng tôi đã cố gắng trả lời tất cả những câu hỏi quan trọng. Bước đầu tiên để bắt đầu giải quyết vấn đề là xác định hệ thống bảo mật nào đang được sử dụng. Để làm điều đó, bạn có thể tham khảo danh sách các captcha và hệ thống chống bot phổ biến, trong đó có các ví dụ minh họa và những dấu hiệu chính giúp bạn nhanh chóng nhận biết mình đang làm việc với giải pháp nào.

Nếu bạn phát hiện trang web của mình đang sử dụng Imperva Incapsula, bước tiếp theo là tìm hiểu chi tiết hơn về các đặc tính và cách hoạt động của nó. Ngay trong bài viết này, bạn cũng có thể xem hướng dẫn tích hợp hệ thống Imperva Incapsula để hiểu đầy đủ cách nó vận hành trên trang web của bạn. Điều đó giúp bạn không chỉ nắm rõ lớp bảo vệ hiện tại mà còn lập kế hoạch bảo trì một cách hợp lý.

Incapsula là gì
Incapsula là gì
Imperva Incapsula Web Protection là hệ thống bảo vệ trang web và ứng dụng dựa trên đám mây chống lại các mối đe dọa bên ngoài. Hệ thống sử dụng các proxy ngược (reverse proxies) an toàn và Tường lửa ứng dụng web (WAF), được đặt trên toàn thế giới tại các máy chủ CDN. Trang web được điều hướng qua các máy chủ bảo mật của Imperva, cho phép kiểm tra từng yêu cầu và lọc các hoạt động độc hại.

Cách giải Incapsula thông qua CapMonster Cloud

Khi kiểm thử các trang được bảo vệ bởi Imperva Incapsula, thường cần phải đảm bảo rằng lớp bảo vệ đang hoạt động chính xác và hệ thống đang lọc đúng lưu lượng truy cập đáng ngờ.

Bạn có thể kiểm tra thủ công hoạt động của lớp bảo vệ trên trang web của mình:

  • Mở trang mong muốn và đảm bảo rằng Incapsula đưa ra yêu cầu kiểm tra.
  • Thử truy cập mà không hoàn thành kiểm tra — trang web sẽ trả về lỗi 405 hoặc một thử thách (challenge) bổ sung.
  • Sau khi vượt qua kiểm tra, quyền truy cập sẽ được mở mà không có lỗi.

Để tự động hóa các kiểm tra như vậy, bạn có thể sử dụng các dịch vụ như CapMonster Cloud.

CapMonster chấp nhận các tham số thử thách của Imperva (ví dụ: cookie _incap_, dữ liệu từ HTML và tập lệnh), xử lý chúng và trả về cookie hợp lệ đã sẵn sàng, có thể được chèn vào trình duyệt hoặc ứng dụng khách HTTP (HTTP client).

Làm việc với CapMonster Cloud qua API thường gồm các bước:

Tạo nhiệm vụTạo nhiệm vụ
arrow
Gửi yêu cầu APIGửi yêu cầu API
arrow
Nhận kết quảNhận kết quả
arrow
Chèn cookie Incapsula vào trangChèn cookie Incapsula vào trang
arrow
Nhận dạng Imperva Incapsula sử dụng các thư viện có sẵn
Dịch vụ CapMonster Cloud cung cấp các thư viện sẵn có để làm việc thuận tiện trên các ngôn ngữ PythonJavaScript (Node.js).
Python
JavaScript
Giải pháp, lấy tham số và thiết lập cookie
Ví dụ trên Node.js cho chu trình nhận dạng captcha đầy đủ trên trang web của bạn. Các phương pháp tiếp cận khả thi: sử dụng các yêu cầu HTTP để lấy HTML và các tham số của hệ thống bảo vệ, gửi phản hồi và xử lý kết quả. Hoặc sử dụng các công cụ tự động hóa (ví dụ: Playwright) — mở trang, đợi kiểm tra, gửi tham số qua ứng dụng khách CapMonster Cloud, nhận kết quả, chèn cookie vào trình duyệt (để kiểm thử, bạn có thể sử dụng cả dữ liệu đúng và sai) và xem kết quả.
python
// npm install playwright @zennolab_com/capmonstercloud-client
// npx playwright install chromium

import { chromium } from "playwright";
import { CapMonsterCloudClientFactory, ClientOptions, ImpervaRequest } from '@zennolab_com/capmonstercloud-client';

async function main() {
    // 1) Cài đặt
    const TARGET_URL = "https://example.com";
    const API_KEY = "YOUR_CAPMONSTER_API_KEY";

    const proxy = {
        proxyType: "http",
        proxyAddress: "PROXY_IP",
        proxyPort: 8080,
        proxyLogin: "PROXY_USER",
        proxyPassword: "PROXY_PASS"
    };

    // 2) Mở trang web và thu thập cookie Imperva
    const browser = await chromium.launch({
        headless: true,
        proxy: {
            server: `${proxy.proxyType}://${proxy.proxyAddress}:${proxy.proxyPort}`,
            username: proxy.proxyLogin,
            password: proxy.proxyPassword
        }
    });

    const page = await browser.newPage();
    await page.goto(TARGET_URL, { waitUntil: "networkidle" });

    const cookies = await page.context().cookies();
    const impervaCookiesString = cookies
        .filter(c => c.name.startsWith("visid_incap_") || c.name.startsWith("incap_ses_"))
        .map(c => `${c.name}=${c.value}`)
        .join("; ");

    console.log("Cookie Imperva từ trang hiện tại:", impervaCookiesString);

    await browser.close();

    // 3) Giải quyết thử thách Imperva
    const cmcClient = CapMonsterCloudClientFactory.Create(
        new ClientOptions({ clientKey: API_KEY })
    );

    const impervaRequest = new ImpervaRequest({
        websiteURL: TARGET_URL,
        userAgent: "USER_AGENT_STRING",
        metadata: {
            incapsulaScriptUrl: "_Incapsula_Resource?example_param",
            incapsulaCookies: impervaCookiesString
        },
        proxy
    });

    const result = await cmcClient.Solve(impervaRequest);
    console.log("Giải pháp:", result);

    // 4) Chèn các cookie nhận được
    const domain = new URL(TARGET_URL).hostname;
    const solutionCookiesObj = result.solution.domains[domain].cookies;

    const solutionCookies = Object.entries(solutionCookiesObj).map(([name, value]) => ({
        name,
        value,
        domain: ".your-domain",
        path: "/",
        secure: true,
        httpOnly: false
    }));

    // 5) Thiết lập cookie và mở trang
    const browser2 = await chromium.launch({
        headless: false,
        proxy: {
            server: `${proxy.proxyType}://${proxy.proxyAddress}:${proxy.proxyPort}`,
            username: proxy.proxyLogin,
            password: proxy.proxyPassword
        }
    });

    const context2 = await browser2.newContext();
    await context2.addCookies(solutionCookies);

    const page2 = await context2.newPage();
    const resp2 = await page2.goto(TARGET_URL, { waitUntil: "networkidle" });

    // Xuất trạng thái trang cuối cùng (tùy chọn)
    // console.log("Trạng thái trang cuối cùng sau khi thiết lập cookie:", resp2?.status());

    // …hoặc ảnh chụp màn hình cuối cùng
    // await page2.screenshot({ path: "final_page.png" });

    console.log("Trang đã tải với các cookie Imperva được áp dụng.");
}

main().catch(console.error);

Cách kết nối Imperva Incapsula vào trang web của bạn
Để tự tin điều hướng hoạt động của captcha trên trang web của bạn, hiểu logic kiểm tra, kết nối lại hoặc cấu hình lại bảo vệ, chúng tôi khuyên bạn nên nghiên cứu phần này. Phần này mô tả quy trình kết nối bảo vệ — điều này sẽ giúp bạn nhanh chóng hiểu rõ tất cả các sắc thái.

1. Tạo tài khoản (sử dụng email công việc của bạn để đăng ký) và truy cập Imperva Cloud Security Console.

2. Xác nhận email. Sau khi đăng nhập, bạn sẽ đến bảng điều khiển (bạn có thể tìm hiểu thêm về cách làm việc với Security Console trong tài liệu).

3. Mở phần Websites và nhập tên miền thực của trang web của bạn.

HowTo Connect image 1

Imperva sẽ tự động:

  • phát hiện nhà cung cấp DNS của bạn,
  • kiểm tra SSL,
  • bắt đầu quét các bản ghi DNS.

4. Cấu hình các bản ghi DNS. Nếu Imperva hiển thị bước này:

markup
Point dev.mysite.com DNS records to Imperva

Thực hiện như sau:

  • Truy cập bảng điều khiển DNS của nhà đăng ký hoặc hosting của bạn.
  • Tạo hoặc cập nhật bản ghi:

markup

Loại (Type): CNAME
Tên (Name): dev (tên miền phụ bạn đang kết nối)
Giá trị (Value): <imperva_host_của_bạn>.ng.impervadns.net

Ví dụ:

markup
dev.mysite.com > CNAME > xivaxeo.ng.impervadns.net

Tùy chọn: bật hỗ trợ cho máy khách Non-SNI

Nếu Imperva hiển thị thông báo:

If you expect Non-SNI traffic…

Điều này liên quan đến các máy khách lỗi thời và các tích hợp cụ thể. Nếu trang web của bạn là tiêu chuẩn, bước này có thể bỏ qua.

Nếu cần, hãy bật:

CDN > Delivery > Support Non-SNI clients

5. Đợi xác minh DNS. Imperva sẽ kích hoạt bảo vệ và SSL.

Khi DNS kết nối, Imperva sẽ tự động:

  • triển khai CDN,
  • kích hoạt WAF (Tường lửa ứng dụng web),
  • tạo chứng chỉ HTTPS,
  • bật bảo vệ chống DDoS và bot.

6. Hạn chế truy cập trực tiếp vào máy chủ của bạn (khuyên dùng)

Để lưu lượng truy cập đi chỉ qua Imperva, trên máy chủ của bạn, bạn nên:

  • chỉ cho phép truy cập từ các địa chỉ IP của Imperva,
  • cấm các kết nối trực tiếp (trừ IP của chính bạn),

Bạn có thể tìm hiểu thêm trong phần Create Rules.

7. Kiểm tra hoạt động của trang web. Sau khi kích hoạt

  • mở tên miền phụ/tên miền của bạn trong trình duyệt,
  • hoặc sử dụng curl:

markup
curl -I https://dev.mysite.com

Trong các tiêu đề (headers) sẽ xuất hiện các dòng như:

markup

HTTP/1.1 403 Forbidden
Content-Type: text/html
Cache-Control: no-cache, no-store
Connection: close
Content-Length: 1234
X-Iinfo: 00-00000000-0 0NNN RT(1234567890 0) q(0 -1 -1 1) r(0 -1) B16(0,0,0) U24
Strict-Transport-Security: max-age=31536000
Set-Cookie: visid_incap_00000000000000000000000000000000=ABCDEFG1234567890TESTCOOKIE; expires=Wed, 11 Nov 2026 23:41:40 GMT; HttpOnly; path=/; Domain=.example.com; Secure; SameSite=None
Set-Cookie: incap_ses_0000_00000000=TESTSESSION1234567890; path=/; Domain=.example.com; Secure; SameSite=None

Điều này có nghĩa là lưu lượng truy cập đang đi qua Imperva.

Background
Các lỗi thường gặp và cách xử lý
Bug Icon
Tên miền hoặc quy tắc không hợp lệ — Challenge không hiển thị.
Kiểm tra xem Quy tắc bảo mật (Security Rule) có được liên kết với đúng tên miền và đường dẫn hay không, và đảm bảo không có xung đột với IncapRules hoặc ACL.
Bug Icon
Hết thời gian chờ tải trang hoặc kiểm tra.
Trình duyệt có thể không đợi phản hồi từ Imperva. Hãy tăng thời gian chờ (timeouts) trong các bài kiểm tra và đảm bảo rằng backend phản hồi đủ nhanh.
Bug Icon
Cookie Imperva đã hết hạn.
Các giá trị visid_incap, incap_ses, nlbi lỗi thời sẽ gây ra Challenge lặp lại hoặc bị chặn.
Bug Icon
Quy tắc quá nhạy cảm.
Các chữ ký (signatures) nghiêm ngặt có thể chặn khách truy cập thực sự vào trang web của bạn.
Bug Icon
Cấu hình sai.
Cài đặt hoặc quy tắc không chính xác, không tính đến đặc thù của trang web, sẽ gây ra việc chặn sai và cảnh báo giả (false positives).
Kiểm tra độ bền vững của lớp bảo vệ
Sau khi tích hợp, hãy đảm bảo hệ thống thực sự chặn được những hành động tự động.
Khuyến nghị về bảo mật và tối ưu
Cấu hình WAF và Chính sách bảo mật (Security Policies) theo mức độ rủi ro. Sử dụng Managed Rules, Bot Protection và các quy tắc tùy chỉnh để kiểm soát chính xác hơn.
Ghi lại các sự kiện bảo mật và kích hoạt WAF để xác định các cảnh báo giả và phân tích nguyên nhân bị chặn.
Để minh bạch, hãy thêm liên kết đến <span class="font-bold">Chính sách bảo mật</span> và <span class="font-bold">Điều khoản sử dụng</span>. Điều này rất quan trọng để đảm bảo tính minh bạch và tuân thủ các yêu cầu bảo mật.
Kết luận

Nếu bạn tiếp quản một trang web đã được cài sẵn captcha hoặc một hệ thống bảo vệ khác nhưng lại không có quyền truy cập vào mã nguồn thì cũng không có gì đáng lo! Việc xác định chính xác công nghệ nào đang được sử dụng khá đơn giản. Để kiểm tra xem mọi thứ có hoạt động đúng hay không, bạn có thể dùng dịch vụ nhận dạng CapMonster Cloud trong một môi trường thử nghiệm tách biệt nhằm đảm bảo cơ chế xử lý token và logic kiểm tra đang vận hành chính xác.

Với Imperva Incapsula, bạn chỉ cần nhận diện hệ thống, quan sát hành vi của nó và xác nhận rằng lớp bảo vệ hoạt động đúng cách. Trong bài viết này, chúng tôi đã chỉ ra cách nhận biết Imperva Incapsula và nơi tìm hướng dẫn tích hợp hoặc cấu hình lại, giúp bạn tự tin duy trì lớp bảo vệ và kiểm soát hoạt động của nó.

Conclusion
Liên kết hữu ích
DocIconTài liệu Imperva IncapsulaDocIconĐăng nhập vào Cloud Security ConsoleDocIconTài liệu CapMonster Cloud (làm việc với Imperva Incapsula)

Câu hỏi thường gặp về Imperva Incapsula

Các thư viện SDK chính thức JavaScript và Python giúp đơn giản hóa tích hợp thay vì phải xử lý thủ công việc polling API cấp thấp.

Logic chung của chúng bao gồm các bước sau:

  1. Tạo ImpervaRequest với websiteURL và một object metadata. metadata đó phải bao gồm:
    • incapsulaScriptUrl — Tên file JS Incapsula.
    • incapsulaCookies — Cookies từ Incapsula. Có thể lấy trên trang bằng document.cookie hoặc trong header request Set-Cookie: "incap_ses_=...; visid_incap_=..."
    • reese84UrlEndpoint (tùy chọn) — Tên endpoint nơi fingerprint reese84 được gửi; có thể tìm thấy trong các request và kết thúc bằng ?d=site.com
  2. Đối với client JavaScript/Node.js, dùng Solve() để chờ giải pháp sẵn sàng.
  3. Giải pháp trả về chứa cookies hợp lệ.

Python tuân theo cùng workflow tổng thể.

  1. Tạo tài khoản Imperva
  2. Mở Cloud Security Console
  3. Thêm site của bạn trong phần Websites

Imperva sau đó cung cấp mục tiêu DNS bạn nên dùng, thường là CNAME cho subdomain bạn đang kết nối.

Sau khi kết nối DNS được xác minh, Imperva kích hoạt lớp CDN/WAF và định tuyến traffic qua hạ tầng của mình trước khi chuyển tiếp request đến origin của bạn.

Để xác nhận cấu hình, thực hiện request chỉ header như curl -I https://dev.mysite.com.

Nếu traffic đi qua Imperva đúng cách, response mẫu bao gồm header 403 ForbiddenSet-Cookie, như visid_incap_*incap_ses_*.

Hầu hết lỗi tích hợp Imperva Incapsula do vấn đề proxy, cookies, timing hoặc cấu hình rule. Kiểm tra các mục sau trước:

  • Error 16: Vị trí địa lý proxy của bạn không khớp với vùng yêu cầu. Dùng proxy từ quốc gia hoặc vùng đúng.
  • Domain hoặc cấu hình rule không hợp lệ: Xác minh domain đích, binding rule WAF và cài đặt tích hợp.
  • Timeout xác minh: Một số tham số challenge hết hạn nhanh, vì vậy thu thập dữ liệu trang mới và gửi ngay.
  • Cookies Imperva hết hạn: Làm mới cookies trước khi thử lại request.
  • Không khớp proxy hoặc trình duyệt: Dùng proxy riêng và gửi userAgent trình duyệt Windows hiện tại cho task.
  • Kiểm tra lặp lại hoặc xác minh thất bại: Xem lại cookies, vùng proxy, độ nhạy rule và cài đặt timeout trước khi cho rằng payload sai.

Các tham số động visid_incap_*incap_ses_* có thời gian sống ngắn. Dùng cookies hết hạn khiến Imperva phát challenge lặp lại hoặc chặn request hoàn toàn. Cách khắc phục là thu thập lại cookies mới từ trang và ngay lập tức gửi task mới đến CapMonster Cloud với incapsulaCookies đã cập nhật trong object metadata.

Imperva Incapsula được mô tả là lớp bảo vệ dựa trên cloud sử dụng reverse proxies an toàn và Web Application Firewall triển khai trên hạ tầng CDN.

Trong mô hình đó, traffic site được định tuyến qua server Imperva, nơi request có thể được kiểm tra và hoạt động độc hại có thể bị lọc trước khi traffic đến origin.

Để kiến trúc đó hiệu quả, chúng tôi cũng khuyên hạn chế truy cập trực tiếp vào server và chỉ cho phép traffic từ dải IP Imperva khi phù hợp.