From a2345affb37d89ccf20089d670b3f52aa6b6dd08 Mon Sep 17 00:00:00 2001 From: ngosang Date: Sun, 31 Jul 2022 16:06:28 +0200 Subject: [PATCH] Fix Cloudflare detection in POST requests --- src/services/solver.ts | 65 ++++++++++++++++-------------------------- 1 file changed, 24 insertions(+), 41 deletions(-) diff --git a/src/services/solver.ts b/src/services/solver.ts index 44c719f..56fafe0 100644 --- a/src/services/solver.ts +++ b/src/services/solver.ts @@ -90,7 +90,7 @@ async function resolveChallenge(params: V1Request, session: SessionsCacheItem): // reload the page to be sure we get the real page log.debug("Reloading the page") try { - response = await gotoPage(params, page); + response = await gotoPage(params, page, params.method); } catch (e) { log.warn("Page not reloaded (do not report!): Cause: " + e.toString()) } @@ -132,9 +132,10 @@ async function resolveChallenge(params: V1Request, session: SessionsCacheItem): } } -async function gotoPage(params: V1Request, page: Page): Promise { +async function gotoPage(params: V1Request, page: Page, method: string = 'GET'): Promise { let pageTimeout = params.maxTimeout / 3; let response: HTTPResponse + try { response = await page.goto(params.url, {waitUntil: 'domcontentloaded', timeout: pageTimeout}); } catch (e) { @@ -142,47 +143,29 @@ async function gotoPage(params: V1Request, page: Page): Promise { response = await page.goto(params.url, {waitUntil: 'domcontentloaded', timeout: pageTimeout}); } - if (params.method == 'POST') { - // post hack - await page.setContent( - ` - - - - - - - ` + await page.setContent(` + + + + ${postForm} + + + ` ); await page.waitForTimeout(2000) try {