camoufox icon indicating copy to clipboard operation
camoufox copied to clipboard

Block by datadome

Open josegutierrezlopez opened this issue 1 year ago • 13 comments

Hi, Block by datadome in url: https://auth.fft.fr/auth/realms/master/protocol/openid-connect/auth?client_id=rgbilletterie-site&response_type=code&scope=openid&locale=en&redirect_uri=https://tickets.rolandgarros.com/api/v2/auth/token => click in register With different providers residential proxies

Thanks

josegutierrezlopez avatar Feb 04 '25 11:02 josegutierrezlopez

Hello,

Are you able to access this URL in a normal browser without the captcha appearing?

I am not able to reproduce a successful case in a normal browser with the URL you provided.

daijro avatar Feb 05 '25 02:02 daijro

I am also encountering issues with datadome detecting camoufox with residential proxy as a bot now. Trying to access seatgeek -> then clicking on any event on the home page. I am using humanized mouse movements.

Was working fine a few days ago so perhaps they have updated their antibot?

Image

UPDATE: I just tried performing the same actions in camoufox manually and did not get flagged. It could perhaps be to do with the mouse movements

chris-simpkins avatar Feb 06 '25 20:02 chris-simpkins

I am also encountering issues with datadome detecting camoufox with residential proxy as a bot now. Trying to access seatgeek -> then clicking on any event on the home page. I am using humanized mouse movements.

Was working fine a few days ago so perhaps they have updated their antibot? Image

UPDATE: I just tried performing the same actions in camoufox manually and did not get flagged. It could perhaps be to do with the mouse movements


Thanks for reporting.

What OS are you using? Could you provide a code snippet that reproduces the issue?

Here's the snippet I'm testing. Let me know if there's a step I'm missing:

from camoufox.sync_api import Camoufox

with Camoufox(humanize=True, geoip=True, proxy={...}) as browser:
    page = browser.new_page()
    page.goto('https://seatgeek.com/')
    page.wait_for_load_state(state="domcontentloaded")
    page.click('.SingleListEvent__Wrapper-sc-34102e03-0')
    page.pause()

I don't seem to be reaching the same error (tested on both Windows and Linux VMs, with residential proxies):

Image

daijro avatar Feb 06 '25 21:02 daijro

Thank you for looking into this.

I am using an Intel Mac running Sequoia 15.3.

My setup is a little funky though - I am using the Camoufox Server with a JS interface. It is loaded with the following config:

    launch_server(
        # Browser configuration
        headless=config.get('headless', False),
        geoip=config.get('geoip', True),
        proxy={
            'server': 'xxx',
            'username': 'xxx',
            'password': 'xxx'
        },

        # Behavior configuration
        humanize=config.get('humanize', True),
        showcursor=config.get('showcursor', True),

        # Performance settings
        block_images=config.get('blockImages'),

        # Feature settings
        main_world_eval=config.get('mainWorldEval'),
        debug=config.get('debug')
    )

As far as code goes, I am doing pretty much exactly what you have tested with - except in - JS.

const wsEndpoint = await server.start();
    const browser = await firefox.connect(wsEndpoint);
    server.setBrowser(browser);

    const page = await browser.newPage();

    await page.goto("https://seatgeek.ca", {
      waitUntil: "domcontentloaded",
    });

    await page.waitForSelector("img[class*='SingleListEvent']");

    await page.click("img[class*='SingleListEvent']");

I appreciate that this makes it a bit harder for you to help diagnose. Something of note - it is quite laggy to start up the browser and load the page, so I'm not sure if this is contributing to triggering the bot?

chris-simpkins avatar Feb 06 '25 21:02 chris-simpkins

@daijro Aha! I think I found the issue.

I was also trying to intercept the requests on the page using playwright. (omitted from my snippet)

await page.route("**/api/event_listings_v2/*", (route) => {
      const headers = route.request().headers();
      clientId = headers.client_id;
      console.log("Client id -->", clientId);
       route.continue();
     });

I have since commented this out and it seems to be working again. Is this a known issue?

chris-simpkins avatar Feb 06 '25 22:02 chris-simpkins

I have since commented this out and it seems to be working again. Is this a known issue?

Seems like FF135 broke Playwright's routing API (#186). I'll look into a solution or possibly rolling back to FF134. 👍

daijro avatar Feb 07 '25 04:02 daijro

@daijro now not loading 'https://tickets.rolandgarros.com/fr/tout-savoir-tirage-au-sort' with proxy, they are blocking camoufox Thanks

Image

josegutierrezlopez avatar Feb 08 '25 15:02 josegutierrezlopez

I have since commented this out and it seems to be working again. Is this a known issue?

Seems like FF135 broke Playwright's routing API (#186). I'll look into a solution or possibly rolling back to FF134. 👍

Meanwhile, is there any way to force some specific version of FF while calling camoufox fetch command? Or does it only fetch the latest version? It'd be nice to stick to 134 until we find a solution for this issue.


UPD: for a very dirty fix, apply this patch for camoufox pkgman.py file, which should stick maximum version of FF to 134 for pip package version 0.4.9 (not sure how VERSION_MAX works when it's set to '1' by default):

--- pkgman.py
+++ pkgman.py
@@ -104,7 +104,9 @@
         return self.sorted_rel < other.sorted_rel

     def is_supported(self) -> bool:
-        return VERSION_MIN <= self < VERSION_MAX
+        major_version = int(self.version.split('.')[0])
+
+        return VERSION_MIN <= self < VERSION_MAX and major_version <= 134

     @staticmethod
     def from_path(path: Optional[Path] = None) -> 'Version':

and then run camoufox fetch for it to download FF134.

vitalikaz avatar Feb 10 '25 07:02 vitalikaz

Hi, I still have a Datadome block running the last release version in linux, so using headless="virtual". If I run it without headless it works fine, but as soon as I use headless its stuck at this page. I tried to use the workaround from other issues (using v134) but its the same result

<html lang="en"><head><title>tidal.com</title><style>#cmsg{animation: A 1.5s;}@keyframes A{0%{opacity:0;}99%{opacity:0;}100%{opacity:1;}}</style><meta name="viewport" content="width=device-width, initial-scale=1.0"></head><body style="margin:0"><script data-cfasync="false">var dd={'rt':'i','cid':'AHrlqAAAAAMA1Es57Wdlu0gAdFpKbg==','hsh':'1F633CDD8EF22541BD6D9B1B8EF13A','b':1621585,'s':34344,'qp':'','host':'geo.captcha-delivery.com','cookie':'Qdx8HfEJ4Acv7uijdLwwPq9OGXsU_tvzXsGnH2vQ6Kr5dCGBlZjaGTDSX2GwtejWxB6qlAFhKeyJYesQSzpHYL7ICcBMkMwsA_17tRX9EkHSaohPCFlmzP5SUkFdMHJI'}</script><script data-cfasync="false" src="https://ct.captcha-delivery.com/i.js"></script><iframe src="https://geo.captcha-delivery.com/interstitial/?initialCid=AHrlqAAAAAMA1Es57Wdlu0gAdFpKbg%3D%3D&amp;hash=1F633CDD8EF22541BD6D9B1B8EF13A&amp;cid=Qdx8HfEJ4Acv7uijdLwwPq9OGXsU_tvzXsGnH2vQ6Kr5dCGBlZjaGTDSX2GwtejWxB6qlAFhKeyJYesQSzpHYL7ICcBMkMwsA_17tRX9EkHSaohPCFlmzP5SUkFdMHJI&amp;referer=https%3A%2F%2Foffer.tidal.com%2F%3Flang%3Den%26skipLandingPage%3Dtrue&amp;s=34344&amp;b=1621585&amp;dm=cd" sandbox="allow-scripts allow-same-origin allow-forms" title="DataDome Device Check" width="100%" height="100%" style="height:100vh;" frameborder="0" border="0" scrolling="yes"></iframe></body></html>

tmxkwpn avatar Feb 27 '25 22:02 tmxkwpn

Hi, I still have a Datadome block running the last release version in linux, so using headless="virtual". If I run it without headless it works fine, but as soon as I use headless its stuck at this page. I tried to use the workaround from other issues (using v134) but its the same result

<html lang="en"><head><title>tidal.com</title><style>#cmsg{animation: A 1.5s;}@keyframes A{0%{opacity:0;}99%{opacity:0;}100%{opacity:1;}}</style><meta name="viewport" content="width=device-width, initial-scale=1.0"></head><body style="margin:0"><script data-cfasync="false">var dd={'rt':'i','cid':'AHrlqAAAAAMA1Es57Wdlu0gAdFpKbg==','hsh':'1F633CDD8EF22541BD6D9B1B8EF13A','b':1621585,'s':34344,'qp':'','host':'geo.captcha-delivery.com','cookie':'Qdx8HfEJ4Acv7uijdLwwPq9OGXsU_tvzXsGnH2vQ6Kr5dCGBlZjaGTDSX2GwtejWxB6qlAFhKeyJYesQSzpHYL7ICcBMkMwsA_17tRX9EkHSaohPCFlmzP5SUkFdMHJI'}</script><script data-cfasync="false" src="https://ct.captcha-delivery.com/i.js"></script><iframe src="https://geo.captcha-delivery.com/interstitial/?initialCid=AHrlqAAAAAMA1Es57Wdlu0gAdFpKbg%3D%3D&amp;hash=1F633CDD8EF22541BD6D9B1B8EF13A&amp;cid=Qdx8HfEJ4Acv7uijdLwwPq9OGXsU_tvzXsGnH2vQ6Kr5dCGBlZjaGTDSX2GwtejWxB6qlAFhKeyJYesQSzpHYL7ICcBMkMwsA_17tRX9EkHSaohPCFlmzP5SUkFdMHJI&amp;referer=https%3A%2F%2Foffer.tidal.com%2F%3Flang%3Den%26skipLandingPage%3Dtrue&amp;s=34344&amp;b=1621585&amp;dm=cd" sandbox="allow-scripts allow-same-origin allow-forms" title="DataDome Device Check" width="100%" height="100%" style="height:100vh;" frameborder="0" border="0" scrolling="yes"></iframe></body></html>

Are you using xvfb?

chris-simpkins avatar Feb 27 '25 22:02 chris-simpkins

Hi, I still have a Datadome block running the last release version in linux, so using headless="virtual". If I run it without headless it works fine, but as soon as I use headless its stuck at this page. I tried to use the workaround from other issues (using v134) but its the same result <html lang="en"><head><title>tidal.com</title><style>#cmsg{animation: A 1.5s;}@keyframes A{0%{opacity:0;}99%{opacity:0;}100%{opacity:1;}}</style><meta name="viewport" content="width=device-width, initial-scale=1.0"></head><body style="margin:0"><script data-cfasync="false">var dd={'rt':'i','cid':'AHrlqAAAAAMA1Es57Wdlu0gAdFpKbg==','hsh':'1F633CDD8EF22541BD6D9B1B8EF13A','b':1621585,'s':34344,'qp':'','host':'geo.captcha-delivery.com','cookie':'Qdx8HfEJ4Acv7uijdLwwPq9OGXsU_tvzXsGnH2vQ6Kr5dCGBlZjaGTDSX2GwtejWxB6qlAFhKeyJYesQSzpHYL7ICcBMkMwsA_17tRX9EkHSaohPCFlmzP5SUkFdMHJI'}</script><script data-cfasync="false" src="https://ct.captcha-delivery.com/i.js"></script><iframe src="https://geo.captcha-delivery.com/interstitial/?initialCid=AHrlqAAAAAMA1Es57Wdlu0gAdFpKbg%3D%3D&amp;hash=1F633CDD8EF22541BD6D9B1B8EF13A&amp;cid=Qdx8HfEJ4Acv7uijdLwwPq9OGXsU_tvzXsGnH2vQ6Kr5dCGBlZjaGTDSX2GwtejWxB6qlAFhKeyJYesQSzpHYL7ICcBMkMwsA_17tRX9EkHSaohPCFlmzP5SUkFdMHJI&amp;referer=https%3A%2F%2Foffer.tidal.com%2F%3Flang%3Den%26skipLandingPage%3Dtrue&amp;s=34344&amp;b=1621585&amp;dm=cd" sandbox="allow-scripts allow-same-origin allow-forms" title="DataDome Device Check" width="100%" height="100%" style="height:100vh;" frameborder="0" border="0" scrolling="yes"></iframe></body></html>

Are you using xvfb?

Yes its in the vps (/usr/bin/Xvfb), but idk if I need to do more actions like setup something else for it to work

tmxkwpn avatar Feb 28 '25 07:02 tmxkwpn

Hi, I tried the new beta version (even tho it doesnt say it fixes that) and its still not working sadly

tmxkwpn avatar Mar 04 '25 13:03 tmxkwpn