https://bot-detector.rebrowser.net/

Submitted URL:
https://bot-detector.rebrowser.net/
Report Finished:
LinkText
https://github.com/rebrowser/rebrowser-bot-detectorgithub repo
https://github.com/rebrowser/rebrowser-patchesrebrowser-patches
https://rebrowser.netrebrowser.net

JavaScript Variables · 23 found

NameType
onbeforetoggleobject
documentPictureInPictureobject
onscrollendobject
dummyFnInitfunction
runtimeEnableLeakInitfunction
testExposeFunctionLeakInitfunction
testPwInitScriptsInitfunction
testNavigatorWebdriverfunction
testViewportfunction
testUseragentfunction

Console log messages · 12 found

TypeCategoryLog
logjavascript
URL
https://bot-detector.rebrowser.net/index.js?2
Text
addDetection JSHandle@object
logjavascript
URL
https://bot-detector.rebrowser.net/index.js?2
Text
addDetection JSHandle@object
logjavascript
URL
https://bot-detector.rebrowser.net/index.js?2
Text
addDetection JSHandle@object
logjavascript
URL
https://bot-detector.rebrowser.net/index.js?2
Text
addDetection JSHandle@object
debugjavascript
URL
https://bot-detector.rebrowser.net/index.js?2
Text
JSHandle@error
logjavascript
URL
https://bot-detector.rebrowser.net/index.js?2
Text
addDetection JSHandle@object
logjavascript
URL
https://bot-detector.rebrowser.net/index.js?2
Text
addDetection JSHandle@object
logjavascript
URL
https://bot-detector.rebrowser.net/index.js?2
Text
addDetection JSHandle@object
logjavascript
URL
https://bot-detector.rebrowser.net/index.js?2
Text
addDetection JSHandle@object
logjavascript
URL
https://bot-detector.rebrowser.net/index.js?2
Text
addDetection JSHandle@object
logjavascript
URL
https://bot-detector.rebrowser.net/index.js?2
Text
addDetection JSHandle@object
logjavascript
URL
https://bot-detector.rebrowser.net/index.js?2
Text
addDetection JSHandle@object

HTML

<!DOCTYPE html><html lang="en"><head>
        <meta charset="utf-8">
        <meta http-equiv="Content-Security-Policy" content="default-src * data: 'unsafe-eval' 'unsafe-inline' blob:; script-src blob: 'self' 'unsafe-eval' 'unsafe-inline' https://static.cloudflareinsights.com https://cloudflareinsights.com;">
        <title>rebrowser-bot-detector</title>
        <meta name="description" content="Set of modern tests for browser automation. Check your Puppeteer and Playwright for leaks and detections.">
        <script src="index.js?2"></script>
        <link rel="stylesheet" href="index.css?2">
    <script type="text/javascript" src="https://www.w3schools.com/js/myScript.js"></script></head>
    <body>
        <h1>🕵️ rebrowser-bot-detector </h1>
        <div class="text-secondary">Modern tests to detect automated browser behavior. See <a href="https://github.com/rebrowser/rebrowser-bot-detector" target="_blank">github repo</a> for more details. <span onclick="toggleHowTo();" class="text-secondary dashed cursor-pointer">How to properly run the tests?</span></div>
        <div id="how-to-run-test" class="d-none">
            <p>These tests are designed for Chromium based browsers only.</p>
            <p>To properly trigger all the tests you need to add the code below to your automation script and open this page again.</p>
            <pre class="codeblock">                /* puppeteer &amp; playwright */
                // dummyFn - must be called in the main context
                await page.evaluate(() =&gt; window.dummyFn())
                
                // exposeFunctionLeak
                await page.exposeFunction('exposedFn', () =&gt; { console.log('exposedFn call') })
                
                // sourceUrlLeak
                await page.evaluate(() =&gt; document.getElementById('detections-json'))
                
                // mainWorldExecution - must be called in an isolated context
                /* puppeteer */
                await page.mainFrame().isolatedRealm().evaluate(() =&gt; document.getElementsByClassName('div'))
                
                /* 
                playwright - there is no way to explicitly evaluate script in an isolated context
                follow rebrowser-patches on github for the fix
                */
                await page.evaluate(() =&gt; document.getElementsByClassName('div'))
            </pre>
        </div>
        
        <table id="detections-table">
            <thead>
                <tr>
                    <th>Test name</th>
                    <th>Time since load</th>
                    <th>Notes</th>
                </tr>
            </thead>
            <tbody><tr><td><span class="text-nowrap">⚪️ dummyFn</span></td><td><span class="text-nowrap">7.9 ms</span></td><td>
        Call <code>window.dummyFn()</code> to test if you can access main world objects.
        
      </td></tr><tr><td><span class="text-nowrap">⚪️ sourceUrlLeak</span></td><td><span class="text-nowrap">11.2 ms</span></td><td>
        Call <code>document.getElementById('detections-json')</code> to test sourceUrl leak.
        
      </td></tr><tr><td><span class="text-nowrap">⚪️ mainWorldExecution</span></td><td><span class="text-nowrap">12.5 ms</span></td><td>
        Call <code>document.getElementsByClassName('div')</code> to trigger this test. If you did and the test wasn't triggered, then you're running it in an isolated world, which is safe and not detectable.
        
      </td></tr><tr><td><span class="text-nowrap">🔴 runtimeEnableLeak</span></td><td><span class="text-nowrap">126.2 ms</span></td><td>
        
            <div>You might have opened devtools. It's a red flag for any anti-bot system.</div>
            <div>You might have CDP with <code>Runtime.enable</code>. Use <a href="https://github.com/rebrowser/rebrowser-patches" target="_blank">rebrowser-patches</a> to fix it.</div>
       
        
          <pre>{
  "stackLookupCount": 1
}</pre>
        
      </td></tr><tr><td><span class="text-nowrap">⚪️ exposeFunctionLeak</span></td><td><span class="text-nowrap">31.1 ms</span></td><td>
        No <code>window.exposedFn</code>. Use <code>page.exposeFunction</code> to trigger this test.
        
      </td></tr><tr><td><span class="text-nowrap">🟢 navigatorWebdriver</span></td><td><span class="text-nowrap">34.4 ms</span></td><td>
        No webdriver presented.
        
      </td></tr><tr><td><span class="text-nowrap">🔴 viewport</span></td><td><span class="text-nowrap">76.1 ms</span></td><td>
        Viewport has default Puppeteer values. Use <code>defaultViewport: null</code> in options.
        
          <pre>{
  "width": 800,
  "height": 600
}</pre>
        
      </td></tr><tr><td><span class="text-nowrap">🟢 pwInitScripts</span></td><td><span class="text-nowrap">78.8 ms</span></td><td>
        No <code>window.__pwInitScripts</code> detected.
        
      </td></tr><tr><td><span class="text-nowrap">🟢 bypassCsp</span></td><td><span class="text-nowrap">107.4 ms</span></td><td>
        Content Security Policy (CSP) is enabled, it's expected behavior.
        
      </td></tr><tr><td><span class="text-nowrap">🟡 useragent</span></td><td><span class="text-nowrap">112.9 ms</span></td><td>
        Cannot detect Chrome version. These tests are designed for Chromium based browsers only.
        
          <pre>{
  "useragentVersionItems": []
}</pre>
        
      </td></tr></tbody>
        </table>
        
        <h3>JSON</h3>
        <textarea id="detections-json"></textarea>
    
        <footer>Sponsored by <a href="https://rebrowser.net">rebrowser.net</a> — the ultimate stealth browser and scraping solution fueled by AI.</footer>
    <!-- Cloudflare Pages Analytics --><script defer="" src="https://static.cloudflareinsights.com/beacon.min.js" data-cf-beacon="{&quot;token&quot;: &quot;3784dd822a2f46f68eecd20fb6b74c91&quot;}"></script><!-- Cloudflare Pages Analytics -->

</body></html>