> 웹 프론트엔드 > JS 튜토리얼 > 웹사이트는 셀레늄 자동화를 어떻게 감지하고 어떻게 우회할 수 있습니까?

웹사이트는 셀레늄 자동화를 어떻게 감지하고 어떻게 우회할 수 있습니까?

Linda Hamilton
풀어 주다: 2024-12-17 22:38:19
원래의
878명이 탐색했습니다.

How Do Websites Detect Selenium Automation, and How Can It Be Circumvented?

웹사이트에서 Selenium 감지

Chromedriver가 포함된 Selenium은 브라우저 자동화를 제공하지만 일부 웹사이트에는 Selenium 인스턴스가 사용되는 시기를 감지하는 기능이 있습니다. , 명시적인 자동화가 없음에도 불구하고. 이러한 능력은 이러한 웹사이트가 어떻게 탐지를 수행하는지에 대한 의문을 제기합니다.

탐지 기술

웹사이트는 셀레늄의 존재를 식별하기 위해 다양한 기술을 사용합니다. 널리 사용되는 방법 중 하나는 Selenium이 작동할 때 나타나는 사전 정의된 JavaScript 변수를 검사하는 것입니다. 이러한 변수에는 "selenium" 또는 "webdriver"라는 용어가 자주 포함되며 $cdc_ 및 $wdc_와 같은 창 개체 및 문서 변수에서 감지될 수 있습니다. 탐지 메커니즘은 사용 중인 브라우저에 따라 다릅니다.

대책

웹사이트 탐지를 우회하는 한 가지 접근 방식은 특정 JavaScript 변수의 존재를 제거하거나 변경하는 것입니다. 예를 들어 Chrome에서는 chromedriver 소스 코드를 수정하여 $cdc_를 다른 변수 이름으로 변경하는 것이 효과적인 것으로 나타났습니다.

봇 탐지를 위한 의사 코드

일부 봇 네트워크는 복잡한 알고리즘을 활용하여 Selenium 사용을 감지할 수 있습니다. 다음 의사 코드는 잠재적인 탐지 기술을 간략하게 보여줍니다.

runBotDetection = function () {

    // Check for window-specific detection keys
    for (windowDetectionKey in windowDetectionKeys) {
        if (window[windowDetectionKeyValue]) {
            return true;
        }
    }

    // Check for document-specific detection keys
    for (documentDetectionKey in documentDetectionKeys) {
        if (window['document'][documentDetectionKeyValue]) {
            return true;
        }
    }

    // Inspect document for specific patterns
    for (documentKey in window['document']) {
        if (documentKey.match(/$[a-z]dc_/) && window['document'][documentKey]['cache_']) {
            return true;
        }
    }

    // Check for additional external indicators
    if (window['external'] && window['external'].toString() && (window['external'].toString()['indexOf']('Sequentum') != -1)) return true;

    // Examine HTML element attributes
    if (window['document']['documentElement']['getAttribute']('selenium')) return true;
    if (window['document']['documentElement']['getAttribute']('webdriver')) return true;
    if (window['document']['documentElement']['getAttribute']('driver')) return true;

    return false;
};
로그인 후 복사

추가 방법

JavaScript 변수를 변경하는 것 외에도 Selenium 탐지를 회피하기 위한 다른 기술은 다음과 같습니다.

  • VPN 사용: VPN 일시적으로 사용자의 IP 주소를 가릴 수 있지만 후속 요청 후에 감지될 수 있습니다.
  • 사용자 에이전트 수정: 사용자 에이전트 문자열을 변경하면 웹 브라우저가 일반 사용자처럼 나타날 수 있습니다.
  • 브라우저 플러그인 비활성화: 특정 플러그인은 Selenium의 정보를 노출할 수 있는 정보를 노출할 수 있습니다.
  • 헤더 수정: 일반적인 사용자의 트래픽과 더 유사하게 표시되도록 HTTP 헤더를 조작할 수 있습니다.
  • 프록시 서버 사용: 프록시 서버 사용자 연결을 더욱 익명화할 수 있습니다.

위 내용은 웹사이트는 셀레늄 자동화를 어떻게 감지하고 어떻게 우회할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿