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.
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:
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:
Incapsula'yı çözme isteğinde aşağıdaki parametreler belirtilmelidir:
type - CustomTask;
class - Imperva;
websiteURL - Incapsula'nın bulunduğu ana sayfanın adresi;
incapsulaScriptUrl (metadata içinde) - "incapsulaScriptUrl": "_Incapsula_Resource?SWJIYLWA=719d34d31c8e3a6e6fffd425f7e032f3" — Incapsula js dosyasının adı;
incapsulaCookies (metadata içinde) - Incapsula'dan aldığınız çerezler. Sayfada document.cookie kullanılarak veya Set-Cookie: "incap_sess_*=...; visid_incap_*=..." istek başlığında alınabilir (/createTask istek örneğine bakın);
reese84UrlEndpoint (metadata içinde) - reese84 parmak izinin (fingerprint) gönderildiği uç noktanın adı;
userAgent - Tarayıcı User-Agent. Windows işletim sisteminden sadece güncel bir UA gönderin;
Ayrıca bu görev için kendi proxy'lerinizi kullanmanız gereklidir:
proxyType :
proxyAddress - Proxy IP adresi IPv4/IPv6;
proxyPort - proxy portu;
proxyLogin - proxy sunucu kullanıcı adı;
proxyPassword - proxy sunucu şifresi.
https://api.capmonster.cloud/createTask{
"clientKey": "API_KEY",
"task": {
"type": "CustomTask",
"class": "Imperva",
"websiteURL": "https://example.com",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36",
"metadata": {
"incapsulaScriptUrl": "_Incapsula_Resource?SWJIYLWA=719d34d31c8e3a6e6fffd425f7e032f3",
"incapsulaCookies": "incap_ses_1166_2930313=br7iX33ZNCtf3HlpEXcuEDzz72cAAAAA0suDnBGrq/iA0J4oERYzjQ==; visid_incap_2930313=P3hgPVm9S8Oond1L0sXhZqfK72cAAAAAQUIPAAAAAABoMSY9xZ34RvRseJRiY6s+;",
"reese84UrlEndpoint": "Built-with-the-For-hopence-Hurleysurfecting-the-"
},
"proxyType": "http",
"proxyAddress": "8.8.8.8",
"proxyPort": 8080,
"proxyLogin": "proxyLoginHere",
"proxyPassword": "proxyPasswordHere"
}
}{
"errorId":0,
"taskId":407533072
}https://api.capmonster.cloud/getTaskResult{
"clientKey":"API_KEY",
"taskId": 407533072
}{
"errorId":0,
"status":"ready",
"solution": {
"domains": {
"https://example.com": {
"cookies": {
"___utmvc": "NMB+nRa4inxXNeXuh...MWIwNmU3MQ==; Max-Age=31536000; Domain=.site.com; Path=/; Secure; SameSite=Lax"
}
}
}
}
}CapMonster Cloud'dan alınan veriler (geçerli Incapsula çerezleri), tarayıcı bağlamına veya bir HTTP istemcisine eklenebilir. Bundan sonra site, isteği doğrulanmış olarak tanır ve kullanıcıyı ek challenge'lar olmadan geçirir.
Otomasyon ve test için Puppeteer, Selenium veya Playwright kullanmak uygundur — bunlar şunları yapmanıza olanak tanır:
Böylece korumanın doğruluğunu kontrol edebilir ve sitenin geçerli Incapsula oturumlarını doğru işlediğinden emin olabilirsiniz.
// 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);
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.

Imperva otomatik olarak:
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:
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:
6. Sunucunuza doğrudan erişimi kısıtlayın (önerilir)
Trafiğin sadece Imperva üzerinden geçmesi için sunucunuzda:
Create Rules bölümünde daha fazla bilgi edinebilirsiniz.
7. Sitenin çalışmasını kontrol edin. Etkinleştirmeden sonra
curl -I https://dev.mysite.comBaş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.
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.