logo
bars

Imperva Incapsula
ve CapMonster Cloud

Captcha çözümü, siteye kurulum ve test etme.
Captcha veya başka bir koruma katmanı olan bir site devraldınız ama kaynak koda erişemiyor musunuz? O zaman hangi çözümün kurulu olduğunu, doğru ayarlanıp ayarlanmadığını ve nasıl test edileceğini bilmek istersiniz.

Bu makalede tüm önemli sorulara cevap vermeye çalıştık. Bir problemi çözmeye başlamanın ilk adımı, hangi koruma sisteminin kullanıldığını belirlemektir. Bunun için, görsel örneklerin ve neyle karşı karşıya olduğunuzu hızlıca anlamanıza yardımcı olabilecek temel işaretlerin yer aldığı popüler captcha ve anti-bot koruma sistemleri listesine başvurabilirsiniz.

Sitenizde Imperva Incapsula kullanıldığını fark ederseniz, bir sonraki adım özelliklerini ve çalışma şeklini daha ayrıntılı incelemek olacaktır. Yine bu makalede, Imperva Incapsula sisteminin entegrasyonuna ilişkin kılavuzu da bulabilir ve böylece sitenizde nasıl çalıştığını tamamen anlayabilirsiniz. Bu da yalnızca mevcut korumayı anlamanıza değil, aynı zamanda bakımını doğru şekilde planlamanıza da yardımcı olur.

Incapsula Nedir
Incapsula Nedir
Imperva Incapsula Web Protection, web sitelerini ve uygulamaları dış tehditlere karşı koruyan bulut tabanlı bir sistemdir. Sistem, dünya genelinde CDN sunucularında bulunan güvenli ters proxy'ler (reverse proxies) ve Web Uygulaması Güvenlik Duvarı (WAF) kullanır. Site, güvenli Imperva sunucuları üzerinden yönlendirilir; bu da her isteğin kontrol edilmesini ve kötü amaçlı faaliyetlerin filtrelenmesini sağlar.

CapMonster Cloud ile Incapsula Nasıl Çözülür

Imperva Incapsula tarafından korunan sayfaları test ederken, genellikle korumanın doğru çalıştığından ve sistemin şüpheli trafiği doğru şekilde filtrelediğinden emin olmak gerekir.

Sitenizdeki korumanın çalışıp çalışmadığını manuel olarak kontrol edebilirsiniz:

  • İstediğiniz sayfayı açın ve Incapsula'nın bir doğrulama sunduğundan emin olun.
  • Doğrulamayı tamamlamadan girmeyi deneyin — site 405 hatası veya ek bir challenge (meydan okuma) döndürmelidir.
  • Doğrulama geçildikten sonra erişim hatasız açılmalıdır.

Bu tür kontrolleri otomatikleştirmek için CapMonster Cloud gibi hizmetler kullanabilirsiniz.

CapMonster, Imperva challenge parametrelerini (örneğin _incap_ çerezi, HTML ve script verileri) kabul eder, bunları işler ve tarayıcıya veya HTTP istemcisine eklenebilecek hazır geçerli çerezler döndürür.

CapMonster Cloud API ile çalışma genellikle şu adımlardan oluşur:

Görev oluşturmaGörev oluşturma
arrow
API isteği göndermeAPI isteği gönderme
arrow
Sonucu almaSonucu alma
arrow
Incapsula çerezlerinin sayfaya yerleştirilmesiIncapsula çerezlerinin sayfaya yerleştirilmesi
arrow
Hazır kütüphaneler kullanılarak Imperva Incapsula Tanıma
CapMonster Cloud hizmeti, Python ve JavaScript (Node.js) dillerinde rahat çalışma için hazır kütüphaneler sunar.
Python
JavaScript
Çözüm, parametrelerin alınması ve çerezlerin ayarlanması
Web sayfanızda tam captcha tanıma döngüsü için Node.js örneği. Olası yaklaşımlar: HTML ve koruma sistemi parametrelerini almak için HTTP isteklerini kullanmak, yanıtı göndermek ve sonucu işlemek. Veya otomasyon araçları (örneğin Playwright) yardımıyla — sayfayı açmak, doğrulamayı beklemek, parametreleri CapMonster Cloud istemcisi üzerinden göndermek, sonucu almak, çerezleri tarayıcıya eklemek (test için hem doğru hem de yanlış verileri kullanabilirsiniz) ve sonucu görmek.
// 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) Ayarlar
    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) Siteyi açıyoruz ve Imperva çerezlerini topluyoruz
    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("Mevcut sayfadan Imperva çerezleri:", impervaCookiesString);

    await browser.close();

    // 3) Imperva challenge'ı çözüyoruz
    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("Çözüm:", result);

    // 4) Alınan çerezleri yerleştiriyoruz
    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) Çerezleri ayarlama ve sayfayı açma
    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" });

    // Son sayfa durumunun çıktısı (isteğe bağlı)
    // console.log("Çerezler ayarlandıktan sonra son sayfa durumu:", resp2?.status());

    // …veya nihai ekran görüntüsü
    // await page2.screenshot({ path: "final_page.png" });

    console.log("Sayfa uygulanan Imperva çerezleri ile yüklendi.");
}

main().catch(console.error);

Imperva Incapsula sitenize nasıl bağlanır
Sitenizdeki captcha'nın işleyişinde güvenle gezinmek, doğrulama mantığını anlamak, korumayı yeniden bağlamak veya yeniden yapılandırmak için bu bölümü incelemenizi öneririz. Burada koruma bağlantı süreci açıklanmaktadır — bu, tüm nüansları hızlıca anlamanıza yardımcı olacaktır.

1. Bir hesap oluşturun (kayıt için iş e-postanızı kullanın) ve Imperva Cloud Security Console'a gidin.

2. E-postayı onaylayın. Giriş yaptıktan sonra kontrol paneline yönlendirileceksiniz (Security Console ile çalışma hakkında daha fazla bilgiyi dokümantasyonda bulabilirsiniz).

3. Websites bölümünü açın ve sitenizin gerçek alan adını girin.

HowTo Connect image 1

Imperva otomatik olarak:

  • DNS sağlayıcınızı tespit eder,
  • SSL'i kontrol eder,
  • DNS kayıtlarını taramaya başlar.

4. DNS kayıtlarını yapılandırın. Imperva şu adımı gösterirse:

Point dev.mysite.com DNS records to Imperva

Şunları yapın:

  • Kayıt operatörünüzün veya hostinginizin DNS paneline gidin.
  • Kaydı oluşturun veya güncelleyin:


Tür (Type): CNAME
Ad (Name): dev (bağladığınız alt alan adı)
Değer (Value): <imperva_hostunuz>.ng.impervadns.net

Örnek:

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

İsteğe bağlı: Non-SNI istemcileri için desteği etkinleştirin

Imperva şu bildirimi gösterirse:

If you expect Non-SNI traffic…

Bu, eski istemciler ve belirli entegrasyonlarla ilgilidir. Siteniz standartsa, bu adım atlanabilir.

Gerekirse, şunu etkinleştirin:

CDN > Delivery > Support Non-SNI clients

5. DNS doğrulamasını bekleyin. Imperva korumayı ve SSL'i etkinleştirecektir.

DNS bağlandığında, Imperva otomatik olarak:

  • CDN'i dağıtır,
  • WAF'ı (Web Uygulaması Güvenlik Duvarı) etkinleştirir,
  • bir HTTPS sertifikası oluşturur,
  • DDoS ve botlara karşı korumayı açar.

6. Sunucunuza doğrudan erişimi kısıtlayın (önerilir)

Trafiğin sadece Imperva üzerinden geçmesi için sunucunuzda:

  • yalnızca Imperva IP adreslerinden erişime izin vermelisiniz,
  • doğrudan bağlantıları yasaklamalısınız (kendi IP'leriniz hariç),

Create Rules bölümünde daha fazla bilgi edinebilirsiniz.

7. Sitenin çalışmasını kontrol edin. Etkinleştirmeden sonra

  • tarayıcıda alt alan adınızı/alan adınızı açın,
  • veya curl kullanın:

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

Başlıklarda (headers) şöyle satırlar görünmelidir:


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

Bu, trafiğin Imperva üzerinden geçtiği anlamına gelir.

Background
Olası hatalar ve hata ayıklama
Bug Icon
Geçersiz alan adı veya kural — Challenge gösterilmiyor.
Security Rule'un (Güvenlik Kuralı) doğru alan adı ve yola bağlı olduğunu ve IncapRules veya ACL ile çakışma olmadığını kontrol edin.
Bug Icon
Sayfa yükleme veya doğrulama zaman aşımı.
Tarayıcı Imperva yanıtını bekleyemeyebilir. Testlerde zaman aşımlarını (timeouts) artırın ve backend'in yeterince hızlı yanıt verdiğinden emin olun.
Bug Icon
Süresi dolmuş Imperva çerezleri.
Eski visid_incap, incap_ses, nlbi değerleri, tekrarlanan bir Challenge'a veya engellemeye neden olur.
Bug Icon
Aşırı hassas kurallar.
Katı imzalar (signatures), sitenizin gerçek ziyaretçilerini engelleyebilir.
Bug Icon
Yanlış yapılandırma.
Site özelliklerini dikkate almayan yanlış ayarlar veya kurallar, hatalı engellemelere ve yanlış pozitiflere (false positives) neden olur.
Korumanın dayanıklılığını test etme
Entegrasyondan sonra sistemin gerçekten otomatik işlemleri engellediğinden emin olun.
Güvenlik ve optimizasyon önerileri
WAF ve Güvenlik Politikalarını risk düzeyine göre yapılandırın. Daha hassas kontrol için Yönetilen Kurallar (Managed Rules), Bot Koruması ve özel kurallar kullanın.
Yanlış pozitifleri belirlemek ve engelleme nedenlerini analiz etmek için güvenlik olaylarını ve WAF tetiklemelerini günlüğe kaydedin.
Şeffaflık için, <b>Gizlilik Politikası</b> ve <b>Kullanım Koşulları</b> bağlantılarını ekleyin. Bu, şeffaflık ve güvenlik gereksinimlerine uyum için önemlidir.
Sonuç

Kodu üzerinde erişiminiz olmayan, ancak üzerinde zaten bir captcha veya başka bir koruma sistemi kurulmuş bir site devraldıysanız, sorun değil! Hangi teknolojinin kullanıldığını tespit etmek oldukça kolaydır. Çalışmanın düzgün olup olmadığını kontrol etmek için ise, izole bir test ortamında CapMonster Cloud tanıma servisinden yararlanarak, jeton işleme mekanizmasının ve doğrulama mantığının doğru şekilde çalıştığından emin olabilirsiniz.

Imperva Incapsula söz konusu olduğunda, sistemi tanımlamak, davranışını incelemek ve korumanın düzgün çalıştığını doğrulamak yeterlidir. Bu yazıda, Imperva Incapsula nasıl tespit edilir ve entegrasyonu ya da yeniden yapılandırılması için talimatların nerede bulunabileceği gösterdik; böylece korumayı güvenle sürdürebilir ve çalışmasını kontrol altında tutabilirsiniz.

Conclusion
Faydalı bağlantılar
DocIconImperva Incapsula DokümantasyonuDocIconCloud Security Console GirişiDocIconCapMonster Cloud Dokümantasyonu (Imperva Incapsula ile çalışma)