모든 글
연구3분 읽기

여덟 개의 봇 탐지기에서 본 bauta와 기본 Playwright

같은 프록시 출구로 한 번 돌린 결과입니다. BrowserScan, CreepJS, pixelscan 등 여덟 탐지기가 bauta와 기본 Playwright를 어떻게 읽는지, 그리고 페이지가 각각에서 무엇을 읽는지 정리했습니다.

봇 탐지기는 페이지 안에서 브라우저를 읽습니다. navigator가 무엇이라고 답하는지, 페이지가 어떻게 조작되고 있는지, 그리고 지문의 각 부분이 서로 맞는지를 봅니다. 2026년 10월 21일, 이런 탐지기 여덟 개와 그 바탕이 되는 페이지 읽기를 기본 Playwright와 bauta에 대해 돌렸습니다.

어떻게 돌렸나

  • 기본 Playwright 1.60.0: 스크립트가 띄우는 그대로입니다. 자체 Chromium 148, 헤드리스, 사이트마다 새 페이지.
  • bauta: 가상 디스플레이 위의 게이트웨이를 거쳐 Windows 기기로 돌렸고, humanize를 켰으며, 시간대와 로캘은 프록시가 나가는 곳을 따랐습니다.
  • 같은 프록시 출구로 두 브라우저를 차례로, 12분 안에 돌렸습니다.

탐지기

판정은 홈페이지의 비교와 같은 말로 옮겼고, 탐지기가 쓰는 이름(WEBDRIVER, mainWorldExecution)은 원문 그대로 둡니다.

탐지기기본 Playwrightbauta
BrowserScan 판정RobotNormal
incolumitas 실패한 검사검사 13개 실패WEBDRIVER만 (어떤 Chrome이든 걸림)
deviceandbrowserinfo 판정봇, 신호 7개사람
rebrowser 흔적흔적 11개mainWorldExecution만 (페이지의 world에서 도는 Playwright의 evaluate)
pixelscan 지문일관되지 않음: 마스킹 탐지, 자동화 동작 탐지일관됨
iphey 점수3070
fingerprint-scan 봇 점수(100점 만점)10029
CreepJS 헤드리스 유사도헤드리스 유사도 94 %, 헤드리스 100 %헤드리스 유사도 25 %, 헤드리스 0 %

bauta에 남은 두 표시는 Playwright 자체의 것입니다. 어떤 Chrome이든 걸리는 incolumitas의 WEBDRIVER 규칙, 그리고 Playwright의 evaluate가 페이지의 world에서 돈다는 rebrowser의 보고입니다.

페이지가 읽는 것

읽는 값기본 Playwrightbauta
navigator.webdrivertruefalse
window.chrome없음있음
navigator.plugins.length05
User-AgentHeadlessChrome/148Chrome/155
페이지의 CDP 클라이언트 (deviceandbrowserinfo)탐지됨탐지 안 됨
TLS 핸드셰이크, JA4 (tls.peet.ws)Chromium 148 자체Google Chrome 155

결과가 다른 이유

bauta는 이 값들을 엔진 안에서 페르소나로부터 답합니다. User-Agent와 Client Hints, navigator, 화면, WebGL이 서로 맞는 것은 모두 한 기기에 대한 한 가지 설명에서 나오기 때문이고, 값을 바꾸려고 페이지에 JavaScript를 넣지 않으므로 페이지는 여전히 Chromium 고유의 네이티브 getter를 봅니다. 기본 Playwright의 헤드리스 Chromium은 자기 자신을 그대로 보고합니다.

써 보기

시작하기에서 bauta를 설치하고 첫 스크립트를 연결합니다. 같은 표는 홈페이지의 비교에도 있습니다.