← Cloudflare Turnstile / turnstile / tutorials
Vyloučení Turnstile z E2E testů
Tento návod ukazuje, jak si v end-to-end (E2E) testech poradit s Turnstile pomocí vyhrazených testovacích klíčů.
Přehled
Při E2E testech obvykle potřebujete ověřování Turnstile obejít nebo zjednodušit. Cloudflare k tomu nabízí oficiální testovací přihlašovací údaje, které ověřením vždy projdou, a jsou proto pro testovací prostředí ideální:
- Testovací klíč sitekey:
1x00000000000000000000AA - Testovací tajný klíč:
1x0000000000000000000000000000000AA
Podrobnosti najdete v dokumentace k testování.
Implementace
Základem detekce testovacího prostředí je rozpoznat testovací požadavky na straně serveru. Jednoduchý postup:
// Detect test environments using IP addresses or headers
function isTestEnvironment(request) {
const testIPs = ['127.0.0.1', '::1'];
const isTestIP = testIPs.includes(request.ip);
const hasTestHeader = request.headers['x-test-environment'] === 'secret-token';
return isTestIP || hasTestHeader;
}
// Use the appropriate credentials based on the environment
function getTurnstileCredentials(request) {
if (isTestEnvironment(request)) {
return {
sitekey: '1x00000000000000000000AA',
secretKey: '1x0000000000000000000000000000000AA'
};
}
return {
sitekey: process.env.TURNSTILE_SITE_KEY,
secretKey: process.env.TURNSTILE_SECRET_KEY
};
}Integrace na straně serveru
Při vykreslování stránky vložte sitekey odpovídající danému prostředí:
app.get('/your-form', (req, res) => {
const { sitekey } = getTurnstileCredentials(req);
res.render('form', { sitekey });
});Integrace na straně klienta
Vaše šablona pak může vložený sitekey použít:
<div class="turnstile" data-sitekey="<%= sitekey %>"></div>Doporučené postupy
-
Detekce prostředí
- K rozpoznání testovacích prostředí použijte více faktorů (IP adresa, hlavičky a podobně).
- Pokud potřebujete testovat z veřejného internetu, chraňte identifikátory testovacího prostředí.
-
Správa přihlašovacích údajů
- Produkční přihlašovací údaje ukládejte bezpečně (například do proměnných prostředí).
- Přístupové údaje nikdy neukládejte do systému správy verzí.
- Pro každé prostředí použijte jiné přihlašovací údaje.
-
Bezpečné nasazení
- Přidejte kontroly, které v produkci zabrání použití testovacích přihlašovacích údajů.
- Zahrňte ověření přihlašovacích údajů do své CI/CD pipeline.
- Sledujte, zda nedošlo k nechtěnému použití testovacích údajů.
Na co při testování myslet
- Testovací údaje vždy projdou ověřením.
- Jsou ideální pro prostředí automatizovaných testů.
- Pomáhají se při testování vyhnout rate limitingu.
- Testy jsou díky nim předvídatelnější a rychlejší.
Ukázkové nastavení testu
Pro Cypress a podobné frameworky pro E2E testování:
// Set test header for all test requests
beforeEach(() => {
cy.intercept('*', (req) => {
req.headers['x-test-environment'] = 'secret-token';
});
});
// Your test can now interact with the form normally
it('submits form successfully', () => {
cy.visit('/your-form');
cy.get('form').submit();
// Turnstile will automatically pass verification
});Závěr
S testovacími přihlašovacími údaji Turnstile a se spolehlivým rozpoznáním prostředí si připravíte stabilní E2E testy, aniž byste oslabili zabezpečení produkce. Testovací údaje vždy držte odděleně od produkčních a do procesu nasazení zaveďte odpovídající pojistky.