আপনি যখন ক্রোমড্রাইভার দিয়ে সেলেনিয়াম ব্যবহার করছেন তখন কোনও ওয়েবসাইট সনাক্ত করতে পারে?


364

আমি ক্রোমড্রাইভারের সাথে সেলেনিয়াম পরীক্ষা করে দেখছি এবং আমি লক্ষ্য করেছি যে কিছু পৃষ্ঠাগুলি সনাক্ত করতে পারে যে আপনি সেলেনিয়ামটি ব্যবহার করছেন যদিও কোনও অটোমেশন নেই। এমনকি আমি যখন সেলেনিয়াম এবং জিফায়ারের মাধ্যমে কেবল ক্রোম ব্যবহার করে ম্যানুয়ালি ব্রাউজ করছি তখনও প্রায়শই আমি একটি পৃষ্ঠা পেয়ে যাচ্ছি যে সন্দেহজনক কার্যকলাপটি সনাক্ত হয়েছে। আমি আমার ব্যবহারকারী এজেন্ট এবং আমার ব্রাউজারের ফিঙ্গারপ্রিন্ট পরীক্ষা করেছি এবং এগুলি সবই সাধারণ ক্রোম ব্রাউজারের সাথে হুবহু মিল।

আমি যখন এই ক্রোমগুলিতে সাধারণ ক্রোমগুলিতে ব্রাউজ করি তখন সবকিছু ঠিকঠাক কাজ করে তবে আমি যখন সেলেনিয়াম ব্যবহার করি তখনই আমি সনাক্ত করি।

তত্ত্বের মধ্যে ক্রোমড্রাইভার এবং ক্রোমকে আক্ষরিক অর্থে যে কোনও ওয়েবসারভারের মতো দেখতে পাওয়া উচিত তবে কোনওভাবে তারা এটি সনাক্ত করতে পারে।

আপনি যদি কিছু টেস্টকোড চান তবে এটি ব্যবহার করে দেখুন:

from pyvirtualdisplay import Display
from selenium import webdriver

display = Display(visible=1, size=(1600, 902))
display.start()
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--disable-extensions')
chrome_options.add_argument('--profile-directory=Default')
chrome_options.add_argument("--incognito")
chrome_options.add_argument("--disable-plugins-discovery");
chrome_options.add_argument("--start-maximized")
driver = webdriver.Chrome(chrome_options=chrome_options)
driver.delete_all_cookies()
driver.set_window_size(800,800)
driver.set_window_position(0,0)
print 'arguments done'
driver.get('http://stubhub.com')

আপনি যদি স্টুব্বের চারপাশে ব্রাউজ করেন তবে আপনাকে এক বা দুটি অনুরোধের মধ্যে আপনাকে পুনঃনির্দেশিত এবং 'অবরুদ্ধ' করা হবে। আমি এটি তদন্ত করছি এবং আমি কীভাবে তারা বলতে পারি যে কোনও ব্যবহারকারী সেলেনিয়াম ব্যবহার করছেন।

তারা কীভাবে এটা করে?

আপডেট সম্পাদনা করুন:

আমি ফায়ারফক্সে সেলেনিয়াম আইডিই প্লাগইন ইনস্টল করেছি এবং আমি কেবলমাত্র অতিরিক্ত প্লাগইন সহ সাধারণ ফায়ারফক্স ব্রাউজারে stubhub.com এ গিয়ে নিষিদ্ধ হয়ে পড়েছিলাম।

সম্পাদনা করুন:

আমি যখন ফিডলারের সাহায্যে এইচটিটিপি অনুরোধগুলি বার বার প্রেরণ করা হচ্ছে দেখতে দেখতে পেয়েছি তখন আমি লক্ষ্য করেছি যে 'নকল ব্রাউজারের' অনুরোধগুলিতে প্রায়শই প্রতিক্রিয়া শিরোনামে 'নো-ক্যাশে' থাকে।

সম্পাদনা করুন:

এর মতো ফলাফলগুলি সনাক্ত করার কোনও উপায় আছে যে আমি জাভাস্ক্রিপ্টের সেলেনিয়াম ওয়েবড্রাইভার পৃষ্ঠায় রয়েছি যাতে আপনি ওয়েবড্রাইভার ব্যবহার করছেন তখন সনাক্ত করার কোনও উপায় থাকার কথা নয়। কিন্তু এই প্রমাণ অন্যথায় প্রস্তাব দেয়।

সম্পাদনা করুন:

সাইটটি তাদের সার্ভারগুলিতে একটি ফিঙ্গারপ্রিন্ট আপলোড করে, তবে আমি পরীক্ষা করে দেখেছি এবং ক্রোম ব্যবহার করার সময় সেলেনিয়ামের ফিঙ্গারপ্রিন্টটি একই রকম।

সম্পাদনা করুন:

এটি ফিঙ্গারপ্রিন্ট পেডলোডগুলির মধ্যে একটি যা তারা তাদের সার্ভারে প্রেরণ করে

{"appName":"Netscape","platform":"Linuxx86_64","cookies":1,"syslang":"en-US","userlang":"en-US","cpu":"","productSub":"20030107","setTimeout":1,"setInterval":1,"plugins":{"0":"ChromePDFViewer","1":"ShockwaveFlash","2":"WidevineContentDecryptionModule","3":"NativeClient","4":"ChromePDFViewer"},"mimeTypes":{"0":"application/pdf","1":"ShockwaveFlashapplication/x-shockwave-flash","2":"FutureSplashPlayerapplication/futuresplash","3":"WidevineContentDecryptionModuleapplication/x-ppapi-widevine-cdm","4":"NativeClientExecutableapplication/x-nacl","5":"PortableNativeClientExecutableapplication/x-pnacl","6":"PortableDocumentFormatapplication/x-google-chrome-pdf"},"screen":{"width":1600,"height":900,"colorDepth":24},"fonts":{"0":"monospace","1":"DejaVuSerif","2":"Georgia","3":"DejaVuSans","4":"TrebuchetMS","5":"Verdana","6":"AndaleMono","7":"DejaVuSansMono","8":"LiberationMono","9":"NimbusMonoL","10":"CourierNew","11":"Courier"}}

সেলেনিয়াম এবং ক্রোমে এর অভিন্ন

সম্পাদনা করুন:

ভিপিএনগুলি একক ব্যবহারের জন্য কাজ করে তবে আমি প্রথম পৃষ্ঠাটি লোড করার পরে সনাক্ত করে। স্পষ্টতই কিছু জাভাস্ক্রিপ্ট সেলেনিয়াম সনাক্ত করতে চালিত হচ্ছে।


4
@ রায়ানওইনস্টাইন: এটি ট্র্যাফিক নয়। আমার ধারণা হ'ল সেলেনিয়ামকে কিছু জাভাস্ক্রিপ্ট হুক প্রকাশ করতে হবে যা ক্লায়েন্ট-সাইড জাভাস্ক্রিপ্টে সনাক্ত করা যায়।
মিক্কো ওহতামা

5
বা যদি এটি ট্র্যাফিক হয় তবে এটি একটি ট্র্যাফিক প্যাটার্ন .... আপনি খুব দ্রুত পৃষ্ঠাগুলি ব্রাউজ করছেন।
মিক্কো ওহতামা

6
আমি খুব দ্রুত ব্রাউজ করছি না। আমি শুধুমাত্র একটি পৃষ্ঠা লোড করি এবং আমি এটির মাধ্যমে সাধারণত আমার মাউস এবং কীবোর্ড ব্যবহার করে নেভিগেট করি। এছাড়াও এটি অর্থবোধ করে না যে সেলেনিয়ামের হুকগুলি প্রকাশ করা দরকার, কারণ এটি আক্ষরিকভাবে ক্রোম.এক্সে চলছে। এটি কেবলমাত্র সাধারণ ক্রোম চালায় এবং এ থেকে ডেটা পেতে আপনাকে অনুমতি দেয়। অন্য কোন ধারণা? আমি ভাবছিলাম কুকিগুলির সাথে এটির কিছু আছে। এটি আমাকে উন্মাদ করে দিচ্ছে।
রায়ান ওয়াইনস্টাইন

5
এই সাইটটি ব্যবহার distillবট সনাক্তকরণ প্রযুক্তি এবং ব্যবহার করে আপনি সামগ্রী বিতরণ akamaitechnologies.comdiffrent আইপিএস যেমন থেকে যা CDN 95.100.59.245, 104.70.243.66,23.202.161.241
SIslam

5
আমি একই সমস্যাটি সেলেনিয়াম এবং ফায়ারফক্স ড্রাইভারের সাথে অনুভব করছি। মজার আকর্ষণীয় বিষয়টি হ'ল আমি একটি ভিএমওয়্যার ওয়ার্কস্টেশন ভার্চুয়াল মেশিনে সেলেনিয়াম চালাচ্ছি যা একটি নেট এর মাধ্যমে ইন্টারনেট অ্যাক্সেস করছে। হোস্ট মেশিন স্টাবহব অ্যাক্সেস করতে সক্ষম হয়, যখন ভিএম সেলেনিয়াম ব্যবহার করার সময়, এমনকি ব্রাউজারের উদাহরণটি সেলেনিয়াম চালু করার সময় অ্যাক্সেস করতে সক্ষম হয় না। আমার ভিএম ব্রাউজার দৃষ্টান্তটি অবরুদ্ধ ছিল এবং স্টাবহব এখনও মেশিনটিকে চিনতে পেরেছিল এবং এটি অবরুদ্ধ করে দিয়েছে। সুতরাং এটি অবশ্যই কোনও উপায়ে ব্রাউজার এবং মেশিনের আঙুলের ছাপটি সম্পাদন করবে।
ব্রায়ান কেইন

উত্তর:


51

ম্যাক ব্যবহারকারীদের জন্য

cdc_ভিম বা পার্ল ব্যবহার করে ভেরিয়েবল প্রতিস্থাপন

আপনি ব্যবহার করতে পারেন vim, অথবা @Vic Seedoubleyew @ Erti-ক্রিস Eelmaa দ্বারা উত্তর নির্দিষ্ট করেছেন perl, প্রতিস্থাপন cdc_মধ্যে পরিবর্তনশীল chromedriver( @ Erti-ক্রিস Eelmaa যে পরিবর্তনশীল সম্পর্কে আরো জানতে দ্বারা পোস্ট দেখতে )। ব্যবহার করতে vimবা perlআপনাকে সোর্স কোডটি পুনরায় সংকলন করতে বা একটি হেক্স-সম্পাদক ব্যবহার করতে বাধা দেয়। আসলটি chromedriverসম্পাদনা করার চেষ্টা করার আগে একটি অনুলিপি তৈরির বিষয়টি নিশ্চিত করুন । এছাড়াও, নীচের পদ্ধতিগুলি পরীক্ষা করা হয়েছিল chromedriver version 2.41.578706


ভিম ব্যবহার করা হচ্ছে

vim /path/to/chromedriver

উপরের লাইনটি চালানোর পরে, আপনি সম্ভবত একগুচ্ছ জিব্রিশ দেখতে পাবেন। নিম্নলিখিতগুলি করুন:

  1. cdc_টাইপ /cdc_এবং টিপে অনুসন্ধান করুন return
  2. টিপে সম্পাদনা সক্ষম করুন a
  3. যে কোনও পরিমাণ মুছুন $cdc_lasutopfhvcZLmcflএবং সমান পরিমাণ অক্ষরের সাথে যা মুছে ফেলা হয়েছে তা প্রতিস্থাপন করুন। আপনি যদি না, chromedriverব্যর্থ হবে।
  4. আপনার সম্পাদনা শেষ হয়ে গেলে, টিপুন esc
  5. পরিবর্তনগুলি সংরক্ষণ করতে এবং প্রস্থান করতে টাইপ করে :wq!টিপুন return
  6. আপনি যদি পরিবর্তনগুলি সংরক্ষণ করতে না চান তবে আপনি প্রস্থান করতে চান, টাইপ করে :q!টিপুন return
  7. তুমি করেছ.

পরিবর্তিত এ যান chromedriverএবং এটিতে ডাবল ক্লিক করুন। একটি terminalউইন্ডো খোলা উচিত। আপনি যদি killedআউটপুট না দেখতে পান তবে আপনি ড্রাইভারটিকে সফলভাবে পরিবর্তন করেছেন।


পার্ল ব্যবহার করা

নীচের লাইনটি এর cdc_সাথে প্রতিস্থাপন করে dog_:

perl -pi -e 's/cdc_/dog_/g' /path/to/chromedriver

প্রতিস্থাপনের স্ট্রিংটিতে অনুসন্ধান স্ট্রিংয়ের মতো একই সংখ্যক অক্ষর রয়েছে তা নিশ্চিত করুন, অন্যথায় এটি chromedriverব্যর্থ হবে।

পার্ল ব্যাখ্যা

s///g বোঝায় যে আপনি একটি স্ট্রিং সন্ধান করতে চান এবং এটি অন্য স্ট্রিংয়ের সাথে বিশ্বব্যাপী প্রতিস্থাপন করতে চান (সমস্ত উপস্থিতি প্রতিস্থাপন করে)।

যেমন, s/string/replacment/g

সুতরাং,

s/// স্ট্রিং অনুসন্ধান এবং প্রতিস্থাপনকে বোঝায়।

cdc_ অনুসন্ধানের স্ট্রিং।

dog_ প্রতিস্থাপন স্ট্রিং হয়।

g গ্লোবাল কী, যা স্ট্রিংয়ের প্রতিটি ঘটনাকে প্রতিস্থাপন করে।

পার্ল প্রতিস্থাপন কাজ করে কিনা তা পরীক্ষা করে দেখুন

নিম্নলিখিত পংক্তিটি অনুসন্ধানের স্ট্রিংয়ের প্রতিটি ঘটনা মুদ্রণ করবে cdc_:

perl -ne 'while(/cdc_/g){print "$&\n";}' /path/to/chromedriver

যদি এটি কিছুই না ফেরায় তবে cdc_প্রতিস্থাপন করা হয়েছে।

বিপরীতে, আপনি এটি ব্যবহার করতে পারেন:

perl -ne 'while(/dog_/g){print "$&\n";}' /path/to/chromedriver

আপনার প্রতিস্থাপনের স্ট্রিং, dog_এখন chromedriverবাইনারি রয়েছে কিনা তা দেখতে । যদি এটি হয় তবে প্রতিস্থাপনের স্ট্রিংটি কনসোলে মুদ্রিত হবে।

পরিবর্তিত এ যান chromedriverএবং এটিতে ডাবল ক্লিক করুন। একটি terminalউইন্ডো খোলা উচিত। আপনি যদি killedআউটপুট না দেখতে পান তবে আপনি ড্রাইভারটিকে সফলভাবে পরিবর্তন করেছেন।


মোড়ক উম্মচন

chromedriverবাইনারি পরিবর্তন করার পরে , নিশ্চিত হয়ে নিন যে পরিবর্তিত chromedriverবাইনারিটির নাম chromedriverএবং মূল বাইনারিটি হয় তার আসল অবস্থান থেকে স্থানান্তরিত হয়েছে বা নাম পরিবর্তন হয়েছে।


এই পদ্ধতিটি নিয়ে আমার অভিজ্ঞতা

লগ ইন করার চেষ্টা করার সময় আমাকে আগে কোনও ওয়েবসাইটে সনাক্ত করা হয়েছিল, তবে cdc_সমান আকারের স্ট্রিংয়ের পরিবর্তে আমি লগ ইন করতে সক্ষম হয়েছি অন্যরা যেমন বলেছেন যে আপনি যদি ইতিমধ্যে সনাক্ত হয়ে থাকেন তবে আপনি কোনও কারণে অবরুদ্ধ হয়ে যেতে পারেন এমনকি এই পদ্ধতি ব্যবহার করার পরেও অন্যান্য কারণগুলির আধিক্য। সুতরাং আপনাকে কোনও ভিপিএন, বিভিন্ন নেটওয়ার্ক বা আপনার কী কী ব্যবহার করে তা সনাক্ত করে এমন সাইটটি অ্যাক্সেস করার চেষ্টা করতে হতে পারে।


@ লেকাবাপার মাথা উঁচু করার জন্য ধন্যবাদ। আমি যে ক্রোমড্রাইভার সংস্করণটি ব্যবহার করেছি সেটি হ'ল সংস্করণটি ছিল 2.41.578706।
colossatr0n

2
এমনকি যখন আমি বিভিন্ন নেটওয়ার্কে নতুন শারীরিক কম্পিউটারে এই ক্রোমড্রাইভার.এক্সি পরিবর্তনটি ব্যবহার করি তখনও কাজ করে না।
আহমেদ মেমন

এটি একটি ত্রুটি দেয় যা বলে, এই সংস্করণটি এই কম্পিউটারে কাজ করতে পারে না :(
ওয়ালিড বোসেটে

@ colossatr0n এমন কোনও অবর্ণনযোগ্য ওপেন-সোর্স কাঁটাচামচ রয়েছে যা সম্পর্কে আপনি জানেন?
ishandutt2007

3
দ্রষ্টব্য যে ক্রোমড্রাইভার লোকেরা এই সমস্যাটিকে স্থির করবে না বলে ঘোষণা করেছে, যাতে আপনি অনির্দিষ্ট ভবিষ্যতের জন্য একটি কাঁটাচামচ ব্যবহার করতে বা বাইনারি সম্পাদনা করতে পারেন। bugs.chromium.org/p/chromedriver/issues/detail?id=3220
কোডিওলজিস্ট

143

সেলেনিয়াম সনাক্তকরণটি যেভাবে কাজ করে তা হ'ল তারা পূর্বনির্ধারিত জাভাস্ক্রিপ্ট ভেরিয়েবলগুলির জন্য পরীক্ষা করে যা সেলেনিয়ামের সাথে চলার সময় উপস্থিত হয়। বট সনাক্তকরণ স্ক্রিপ্ট সাধারণত কিছু শব্দ ধারণকারী "সেলেনিয়াম" ভেরিয়েবল (উইন্ডো বস্তুর দিকে) কোনো / "webdriver", এবং এছাড়াও দলিল ভেরিয়েবল নামক চেহারা $cdc_এবং $wdc_। অবশ্যই, এইগুলি নির্ভর করে আপনি কোন ব্রাউজারে আছেন তার উপর। সমস্ত বিভিন্ন ব্রাউজার বিভিন্ন জিনিস প্রকাশ করে।

আমার জন্য, আমি ক্রোম ব্যবহার করেছি, সুতরাং আমাকে যা করতে হয়েছিল তা হ'ল $cdc_ডকুমেন্ট ভেরিয়েবল এবং ভয়েলা (ক্রোমড্রাইভার উত্স কোড ডাউনলোড করুন, ক্রোমড্রাইভার পরিবর্তন করুন এবং $cdc_বিভিন্ন নামে পুনরায় সংকলন করুন ))

ক্রোমড্রাইভারে এটি ফাংশনটি আমি সংশোধন করেছি:

call_function.js:

function getPageCache(opt_doc) {
  var doc = opt_doc || document;
  //var key = '$cdc_asdjflasutopfhvcZLmcfl_';
  var key = 'randomblabla_';
  if (!(key in doc))
    doc[key] = new Cache();
  return doc[key];
}

(মন্তব্যটি নোট করুন, আমি যেদিকে পরিণত হয়েছিল তা সবই $cdc_ থেকে randomblabla_

এখানে একটি সিউডো কোড রয়েছে যা বট নেটওয়ার্কগুলি ব্যবহার করতে পারে এমন কয়েকটি কৌশল প্রদর্শন করে:

runBotDetection = function () {
    var documentDetectionKeys = [
        "__webdriver_evaluate",
        "__selenium_evaluate",
        "__webdriver_script_function",
        "__webdriver_script_func",
        "__webdriver_script_fn",
        "__fxdriver_evaluate",
        "__driver_unwrapped",
        "__webdriver_unwrapped",
        "__driver_evaluate",
        "__selenium_unwrapped",
        "__fxdriver_unwrapped",
    ];

    var windowDetectionKeys = [
        "_phantom",
        "__nightmare",
        "_selenium",
        "callPhantom",
        "callSelenium",
        "_Selenium_IDE_Recorder",
    ];

    for (const windowDetectionKey in windowDetectionKeys) {
        const windowDetectionKeyValue = windowDetectionKeys[windowDetectionKey];
        if (window[windowDetectionKeyValue]) {
            return true;
        }
    };
    for (const documentDetectionKey in documentDetectionKeys) {
        const documentDetectionKeyValue = documentDetectionKeys[documentDetectionKey];
        if (window['document'][documentDetectionKeyValue]) {
            return true;
        }
    };

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

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

    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;
};

ব্যবহারকারী @ এসজেএক্স এর মতে, হেক্স সম্পাদকে কেবল ক্রোমড্রাইভার.এক্সই খোলা সম্ভব এবং বাস্তবে কোনও সংকলন না করে কেবল নিজেই প্রতিস্থাপনটি করা সম্ভব।


26
হ্যাঁ এটি প্রবস ছাড়াই কাজ করেছে, একটি সমস্যা নোট করুন যদি আপনি এই পরিবর্তন আগে "ব্ল্যাকলিস্ট" এর মধ্যে পড়ে যান তবে তা বেরিয়ে আসা বেশ কঠিন। যদি আপনি বিদ্যমান কালো তালিকা থেকে বেরিয়ে আসতে চান, আপনার জাল ক্যানভাস ফিঙ্গারপ্রিন্ট প্রয়োগ করতে হবে, ফ্ল্যাশ অক্ষম করতে হবে, আইপি পরিবর্তন করতে হবে, এবং অনুরোধ শিরোনাম ক্রম পরিবর্তন করতে হবে (ভাষা এবং অ্যাসিড হেডারগুলি স্বীকার করুন)। আপনি একবার ব্ল্যাকলিস্টে পড়ে গেলে, আপনি আইপি পরিবর্তন করেও, ছদ্মবেশে ক্রোম খোলেন এমনকি, তাদের ট্র্যাক করার জন্য তাদের খুব ভাল ব্যবস্থা রয়েছে
এরতি-ক্রিস ইলমা

2
আমি "/ ব্যবহারকারী / আপনার ব্যবহারকারী নাম / ক্রোমিয়াম / এসসিআর / ক্রোম / পরীক্ষা / ক্রোমড্রাইভার / জেএস"
ফাইলটি পেয়েছি

6
আমি কেবল প্রতিস্থাপিত $cdcসঙ্গে xxxxমধ্যে chromedriver.exeএকটি হেক্স এডিটরে এবং এটা কাজ! আমি আরও লক্ষ্য করেছি যে আপনি যদি ব্রাউজার উইন্ডোটি সর্বাধিক করেন তবে (পূর্বনির্ধারিত আকার ব্যবহার না করে) এটি প্রায়শই কম খুঁজে পাওয়া যায়।
szx

2
এটি কি উইন্ডো, অক্স বা লিনাক্সে ছিল? অসক্সে হেক্স সম্পাদনা কাজ করছে বলে মনে হচ্ছে না।
নিশ

5
x zzz_zzzzzzzzzzzzzzzzzzzzzzzz__ (একই পরিমাণের অক্ষর) দিয়ে হেক্স-সম্পাদিত কিন্তু কার্যকর হয়নি।
আইমন ফর্নিয়ার

100

যেহেতু আমরা ইতিমধ্যে প্রশ্ন এবং পোস্ট করা উত্তরগুলি সন্ধান করেছি, এখানে একটি খেলায় "ডিস্টিল নেটওয়ার্ক" নামে একটি অ্যান্টি-স্ক্র্যাপিং এবং একটি বট সনাক্তকরণ পরিষেবা রয়েছে । এবং, সংস্থার সিইওর সাক্ষাত্কার অনুযায়ী :

যদিও তারা নতুন বট তৈরি করতে পারে তবুও আমরা সেলেনিয়াম যে সরঞ্জামটি তারা ব্যবহার করছি তা সনাক্ত করার একটি উপায় খুঁজে পেয়েছি, তাই আমরা সেলেনিয়ামকে এই বটটিতে কতবার পুনরাবৃত্তি করি না তা অবরুদ্ধ করছি । পাইথন এবং বিভিন্ন প্রযুক্তির সাথে আমরা এখন এটি করছি doing একবার আমরা দেখি যে এক ধরণের বোট থেকে কোনও প্যাটার্ন উত্থিত হয়, তারপরে আমরা তাদের ব্যবহার করা প্রযুক্তিটি বিপরীত করার এবং এটিকে দূষিত হিসাবে চিহ্নিত করার জন্য কাজ করি।

তারা ঠিক কীভাবে সেলেনিয়াম সনাক্ত করছে তা বুঝতে সময় এবং অতিরিক্ত চ্যালেঞ্জগুলি লাগবে, তবে এই মুহুর্তে আমরা নিশ্চিতভাবে কী বলতে পারি:

  • এটি সেলেনিয়ামের সাথে আপনার করা পদক্ষেপের সাথে সম্পর্কিত নয় - আপনি একবার সাইটে নেভিগেট করলে আপনার তাত্ক্ষণিক শনাক্ত হয়ে নিষিদ্ধ হয়ে যায়। আমি ক্রিয়াগুলির মধ্যে কৃত্রিম এলোমেলো বিলম্ব যুক্ত করার চেষ্টা করেছি, পৃষ্ঠাটি লোড হওয়ার পরে একটি বিরতি দিন - কিছুই সাহায্য করেনি
  • এটি ব্রাউজারের ফিঙ্গারপ্রিন্ট সম্পর্কেও নয় - এটি একাধিক ব্রাউজারে পরিষ্কার প্রোফাইল সহ চেষ্টা করেছে এবং না, ছদ্মবেশী মোড - কিছুই সাহায্য করেনি
  • যেহেতু সাক্ষাত্কারের ইঙ্গিত অনুসারে এটি "রিভার্স ইঞ্জিনিয়ারিং" ছিল, তাই আমি সন্দেহ করি যে এটি কিছু জেএস কোডটি ব্রাউজারে মৃত্যুদন্ড কার্যকর করে প্রকাশিত হয়েছে যে এটি সেলেনিয়াম ওয়েবড্রাইভারের মাধ্যমে স্বয়ংক্রিয়ভাবে একটি ব্রাউজার রয়েছে browser

এটিকে উত্তর হিসাবে পোস্ট করার সিদ্ধান্ত নিয়েছে, যেহেতু স্পষ্ট:

আপনি যখন ক্রোমড্রাইভার দিয়ে সেলেনিয়াম ব্যবহার করছেন তখন কোনও ওয়েবসাইট সনাক্ত করতে পারে?

হ্যাঁ.


এছাড়াও, আমি যা পরীক্ষা করে নিই তা পুরনো সেলেনিয়াম এবং পুরানো ব্রাউজার সংস্করণগুলি - তাত্ত্বিকভাবে, ডিস্টিল নেটওয়ার্ক বট ডিটেক্টর বর্তমানে নির্ভর করে যা একটি নির্দিষ্ট সময়ে সেলেনিয়ামে প্রয়োগ / যুক্ত কিছু হতে পারে। তারপরে, যদি এটি হয় তবে আমরা সনাক্ত করতে পারি (হ্যাঁ, সনাক্তকারী সনাক্ত করুন) কোন পয়েন্ট / সংস্করণে কোনও প্রাসঙ্গিক পরিবর্তন হয়েছে, চেঞ্জলগ এবং চেঞ্জসেটগুলি সন্ধান করুন এবং হতে পারে এটি আমাদের কোথায় কোথায় নজর রাখবে তার আরও তথ্য দিতে পারে এবং এটি একটি ওয়েব ড্রাইভার চালিত ব্রাউজার সনাক্ত করতে কী ব্যবহার করে। এটি কেবল একটি তত্ত্ব যা পরীক্ষা করা দরকার।


@ রায়ানওইনস্টেইন ভাল, আমাদের কাছে কোন প্রকৃত প্রমাণ নেই এবং আমরা কেবল অনুমান এবং পরীক্ষা করতে পারি। আপাতত, আমি বলব তাদের কাছে সেলেনিয়াম ব্যবহার করে সনাক্ত করার একটি উপায় আছে। সেলেনিয়াম সংস্করণ নিয়ে পরীক্ষা করার চেষ্টা করুন - এটি আপনাকে কিছু সংকেত দিতে পারে।
অ্যালেক্স

1
এটি কীভাবে সাময়িক বন্দরগুলি নির্ধারিত হয় তার সাথে কী করতে পারে? পদ্ধতিটি সুপরিচিত রেঞ্জ থেকে দূরে থাকে। github.com/SeleniumHQ/selenium/blob/…
এলিয়ট ডি

9
ইজিজেট ডিস্টিলেটওয়ার্ক পরিষেবা ব্যবহার করছে, হ্যাঁ এটি ডামি বটগুলিকে ব্লক করতে পারে তবে জটিল নয় কারণ আমরা এটি বিভিন্ন আইপি (যা আমরা আবার 'একই' ঠিকানাটি পুনরায় ব্যবহার করি) এর মাধ্যমে 2000 টিরও বেশি অনুরোধের সাথে এটি পরীক্ষা করেছি তাই মূলত প্রতিটি আইপি অনুসরণ করে একটি 5-10 দিনের জন্য অনুরোধ করে এবং এ থেকে আমি বলতে পারি যে এই সমস্ত বট সনাক্তকরণ পরিষেবাগুলি প্রায় 45% কার্যকরী অ্যালগরিদমগুলি বিকাশ ও বিক্রয় করতে পারে, আমরা যে স্ক্র্যাপার ব্যবহার করেছি তা সনাক্ত করা সহজ ছিল আমি ডেসটিলনেট ওয়ার্কস, স্কোয়ারশিল্ড এবং অন্যদের ক্ষেত্রে এটি ব্লক করতে পারি যা আমাকে কখনও তাদের কোনও ব্যবহার করতে ধাক্কা দেয়নি।
জেফারি থিগিনটোকি

3
আমি মনে করি তারা ক্রোম ওয়েবড্রাইভারে নেভিগেটর.আরবিড্রাইভার সনাক্ত করছে। আমি navigator.webdriver সাহায্যে মিথ্যা করতে = চেষ্টা intoli.com/blog/not-possible-to-block-chrome-headless এবং stackoverflow.com/questions/47297877/... । এটি distilnetworks.com/distil_phanfy_cookie.html
hoozecn

24

ওয়েলসফারগো.কম এ এটি কীভাবে কার্যকর করা যায় তার উদাহরণ:

try {
 if (window.document.documentElement.getAttribute("webdriver")) return !+[]
} catch (IDLMrxxel) {}
try {
 if ("_Selenium_IDE_Recorder" in window) return !+""
} catch (KknKsUayS) {}
try {
 if ("__webdriver_script_fn" in document) return !+""

13
শেষ চেষ্টা কেন বন্ধ হয়নি? এছাড়াও আপনি আপনার উত্তরটি একটু ব্যাখ্যা করতে পারেন।
ishandutt2007

16

জাভাস্ক্রিপ্টস ফলাফল অবলম্বন

আমি ক্রোমড্রাইভার উত্স কোডটি যাচাই করেছি। এটি ব্রাউজারে কিছু জাভাস্ক্রিপ্ট ফাইল ইনজেকশন দেয়।
এই লিঙ্কটির প্রতিটি জাভাস্ক্রিপ্ট ফাইল ওয়েব পৃষ্ঠাগুলিতে ইনজেকশন করা হয়: https://chromium.googlesource.com/chromium/src/+/master/chrome/test/chromedriver/js/

তাই আমি রিভার্স ইঞ্জিনিয়ারিং ব্যবহার করা হয় এবং obfuscated হেক্স সম্পাদনা করে JS ফাইল। এখন আমি নিশ্চিত ছিলাম সেলেনিয়াম ক্রিয়াকলাপ উদ্ঘাটনে আর কোনও জাভাস্ক্রিপ্ট পরিবর্তনশীল, ফাংশন নাম এবং স্থির স্ট্রিং ব্যবহার করা হয়নি। তবে এখনও কিছু সাইট এবং রিপ্যাচচা সেলেনিয়াম সনাক্ত করে!
হতে পারে তারা ক্রোমড্রাইভার জেএস কার্যকরকরণের কারণে সংঘটিত পরিবর্তনগুলি পরীক্ষা করে :)


সম্পাদনা 1:

ক্রোম 'ন্যাভিগেটর' পরামিতি পরিবর্তন

আমি আবিষ্কার করেছি যে 'নেভিগেটরে' এমন কিছু পরামিতি রয়েছে যা ক্রোমড্রাইভার ব্যবহার করে সংক্ষেপে উদ্ঘাটিত হয়। এই পরামিতি:

  • "নেভিগেটর.ওয়েবড্রাইভার" অ-স্বয়ংক্রিয় মোডে এটি 'অপরিজ্ঞাত'। স্বয়ংক্রিয় মোডে এটি 'সত্য'।
  • "নেভিগেটর.প্লাগিনস" হেডলেস ক্রোমের 0 দৈর্ঘ্য রয়েছে। তাই আমি প্লাগিনের দৈর্ঘ্য পরীক্ষার প্রক্রিয়াটিকে বোকা বানানোর জন্য কিছু নকল উপাদান যুক্ত করেছি।
  • " নেভিগেটর.এলংগ্রয়েজস" কে ডিফল্ট ক্রোম মান '["এন-ইউএস", "এন", "এস"]' তে সেট করা হয়েছিল।

সুতরাং আমার যা দরকার তা ছিল ওয়েব পৃষ্ঠাগুলিতে জাভাস্ক্রিপ্ট চালানোর জন্য ক্রোম এক্সটেনশন। আমি নিবন্ধে প্রদত্ত জেএস কোডটি দিয়ে একটি এক্সটেনশান করেছি এবং আমার প্রকল্পে জিপ করা এক্সটেনশন যুক্ত করতে অন্য আর্টিকেলটি ব্যবহার করেছি। আমি সাফল্যের সাথে মানগুলি পরিবর্তন করেছি; কিন্তু তবুও কিছু বদল হয়নি!

আমি এগুলির মতো অন্যান্য ভেরিয়েবলগুলি খুঁজে পেলাম না তবে এর অর্থ এই নয় যে তারা বিদ্যমান নেই। তবুও পুনঃপ্যাচা ক্রোমড্রাইভার সনাক্ত করে, তাই পরিবর্তনের জন্য আরও ভেরিয়েবল থাকা উচিত। পরবর্তী ধাপে আবিষ্কারক পরিষেবার রিভার্স ইঞ্জিনিয়ারিং যে আমি করতে চাই না হতে হবে।

এখন আমি নিশ্চিত নই যে এই অটোমেশন প্রক্রিয়াটিতে আরও বেশি সময় ব্যয় করা বা বিকল্প পদ্ধতিগুলি অনুসন্ধান করা কি উপযুক্ত?


12

ক্রোমের একটি নির্দিষ্ট ব্যবহারকারীর প্রোফাইল সহ সেলেনিয়াম ব্যবহার করার চেষ্টা করুন, এইভাবে আপনি নির্দিষ্ট ব্যবহারকারী হিসাবে এটি ব্যবহার করতে পারেন এবং যে কোনও জিনিস আপনি চান তা নির্ধারণ করতে পারেন, যখন এটি 'সত্যিকারের' ব্যবহারকারী হিসাবে চলবে, কিছু প্রক্রিয়া এক্সপ্লোরার সহ ক্রোম প্রক্রিয়াটি দেখুন এবং আপনি ট্যাগের সাথে পার্থক্য দেখতে পাবেন।

উদাহরণ স্বরূপ:

username = os.getenv("USERNAME")
userProfile = "C:\\Users\\" + username + "\\AppData\\Local\\Google\\Chrome\\User Data\\Default"
options = webdriver.ChromeOptions()
options.add_argument("user-data-dir={}".format(userProfile))
# add here any tag you want.
options.add_experimental_option("excludeSwitches", ["ignore-certificate-errors", "safebrowsing-disable-download-protection", "safebrowsing-disable-auto-update", "disable-client-side-phishing-detection"])
chromedriver = "C:\Python27\chromedriver\chromedriver.exe"
os.environ["webdriver.chrome.driver"] = chromedriver
browser = webdriver.Chrome(executable_path=chromedriver, chrome_options=options)

ক্রোম ট্যাগ তালিকা এখানে


11

partial interface Navigator { readonly attribute boolean webdriver; };

নেভিগেটর ইন্টারফেসের ওয়েবড্রাইভার আইডিএল অ্যাট্রিবিউটকে অবশ্যই ওয়েবড্রাইভার-সক্রিয় পতাকার মান ফিরিয়ে দিতে হবে, যা প্রাথমিকভাবে মিথ্যা।

এই সম্পত্তি ওয়েবসাইটগুলিকে এটি নির্ধারণ করতে দেয় যে ব্যবহারকারীর এজেন্ট ওয়েবড্রাইভারের দ্বারা নিয়ন্ত্রণাধীন, এবং অস্বীকৃত-পরিষেবা আক্রমণগুলিকে প্রশমিত করতে সহায়তা করতে ব্যবহৃত হতে পারে।

সরাসরি ওয়েবড্রাইভারের 2017 ডাব্লু 3 সি সম্পাদকের খসড়া থেকে নেওয়া । এটি ভারীভাবে বোঝায় যে খুব কমপক্ষে, সেলেনিয়ামের চালকদের ভবিষ্যতের পুনরাবৃত্তি অপব্যবহার রোধের জন্য চিহ্নিতযোগ্য হবে। শেষ পর্যন্ত, উত্স কোড ব্যতীত বলা মুশকিল, নির্দিষ্টভাবে ক্রোম ড্রাইভারকে সনাক্তকরণযোগ্য হওয়ার কারণ কি।


4
"উত্স কোড ব্যতীত এটি বলা মুশকিল" .. ভাল উত্স কোডটি
কোরি গোল্ডবার্গ

6
আমি প্রশ্নের উত্স কোড ওয়েবসাইট ছাড়া বোঝাতে চেয়েছিলাম। তারা কী বিরুদ্ধে পরীক্ষা করছে তা বলা শক্ত hard
ব্রাইস

8

ফায়ারফক্স window.navigator.webdriver === trueকোনও ওয়েবড্রাইভারের সাথে কাজ করা থাকলে সেট করতে বলে । যে পুরোনো চশমা এক অনুযায়ী ছিল (যেমন: archive.org ) কিন্তু আমি এর মধ্যে খুঁজে পাইনি নতুন এক পরিশিষ্টের মধ্যে কিছু খুব অস্পষ্ট বাক্যে কথন ছাড়া।

এর জন্য একটি পরীক্ষা ফিঙ্গারপ্রিন্ট_টেষ্ট.জেএস ফাইলের সেলেনিয়াম কোডে রয়েছে যেখানে শেষে মন্তব্যটি বলেছে "বর্তমানে কেবল ফায়ারফক্সে প্রয়োগ করা হয়েছে" তবে আমি কিছু সরল grepআইং দিয়ে সেদিকে কোনও কোড সনাক্ত করতে সক্ষম হইনি , বর্তমান (41.0.2) ফায়ারফক্স রিলিজ-ট্রি বা ক্রোমিয়াম-ট্রিতে নেই in

আমি জানুয়ারী 2015 থেকে ফায়ারফক্স ড্রাইভার b82512999938 এ ফিঙ্গারপ্রিন্ট সংক্রান্ত একটি পুরানো প্রতিশ্রুতির জন্য একটি মন্তব্যও পেয়েছি । সে কোডটি সেলেনিয়াম জিআইটি-মাস্টারে গতকাল ডাউনলোড হয়েছে javascript/firefox-driver/extension/content/server.jsবর্তমান ডাব্লু 3 সি ওয়েবড্রাইভার স্পেসে কিছুটা ভিন্ন শব্দযুক্ত পরিশিষ্টের সাথে সংযুক্ত একটি মন্তব্যের সাথে।


2
আমি কেবল ফায়ারফক্স 55 এর সাথে ওয়েবড্রাইভার পরীক্ষা করেছি এবং আমি নিশ্চিত করতে পারি যে এটি সত্য নয়। পরিবর্তনশীল window.navigator.webdriverসংজ্ঞায়িত করা হয় না।
স্পিড প্লেন

1
আপডেট: আমি ফায়ারফক্স 65 এর সাথে পরীক্ষা করেছি এবং এটি সত্য:window.navigator.webdriver == true
স্পিড প্লেন

ফায়ারফক্স সংস্করণ 76 এখনও এটি সত্য বলে দেখায়
user2284144

8

@ এর্তি-ক্রিস ইলমার দুর্দান্ত উত্তরের সাথে সাথে - বিরক্তিকর window.navigator.webdriverএবং এটি কেবল পঠনযোগ্য। ইভেন্টটির মানটি যদি আপনি এতে পরিবর্তন করেন falseতবে এখনও তা থাকবে true। স্বয়ংক্রিয় সফ্টওয়্যার দ্বারা চালিত ব্রাউজারটি এখনও সনাক্ত করা যায় ts MDN

পরিবর্তনশীল --enable-automationক্রোমে পতাকা দ্বারা পরিচালিত হয় । Chromedriver লঞ্চ যে পতাকা দিয়ে Chrome এবং Chrome সেট করে window.navigator.webdriverকরতে true। আপনি এটি এখানে খুঁজে পেতে পারেন । আপনাকে পতাকাটি "বাদ দিন" যুক্ত করতে হবে। উদাহরণস্বরূপ (গোলং):

package main

import (
    "github.com/tebeka/selenium"
    "github.com/tebeka/selenium/chrome"
)

func main() {

caps := selenium.Capabilities{
    "browserName": "chrome",
}

chromeCaps := chrome.Capabilities{
    Path:            "/path/to/chrome-binary",
    ExcludeSwitches: []string{"enable-automation"},
}
caps.AddChrome(chromeCaps)

wd, err := selenium.NewRemote(caps, fmt.Sprintf("http://localhost:%d/wd/hub", 4444))
}

6

মনে হচ্ছে তারা কোনও ওয়েব অ্যাপ্লিকেশন ফায়ারওয়ালের পিছনে রয়েছে। এইগুলি কীভাবে কাজ করে তা দেখার জন্য মোডেসকিউরিটি এবং ওউস্প্প একবার দেখুন। বাস্তবে, আপনি যা জিজ্ঞাসা করছেন তা হ'ল কীভাবে বট সনাক্তকরণ ফাঁকি দেওয়া। এটি সেলেনিয়াম ওয়েব ড্রাইভারের জন্য নয়। এটি অন্য ওয়েব অ্যাপ্লিকেশনগুলিকে আঘাত না করে আপনার ওয়েব অ্যাপ্লিকেশনটি পরীক্ষা করার জন্য। এটি সম্ভব, তবে মূলত, আপনাকে একটি ডাব্লুএএএফ তাদের নিয়ম সেটটিতে কী দেখায় তা দেখতে হবে এবং আপনি যদি পারেন তবে বিশেষভাবে সেলেনিয়াম দিয়ে এড়ানো উচিত। তারপরেও, এটি এখনও কাজ করতে পারে না কারণ তারা জানেন না যে তারা ডাব্লুএএএফ কী ব্যবহার করছে। আপনি সঠিক প্রথম পদক্ষেপটি করেছেন, এটি ব্যবহারকারী এজেন্টকে নকল করছে। যদি এটি যদি কাজ না করে তবে একটি ডাব্লুএইএফ রয়েছে এবং সম্ভবত আপনার আরও জটিল হওয়া দরকার।

সম্পাদনা করুন: অন্য উত্তর থেকে নেওয়া পয়েন্ট। আপনার ব্যবহারকারী এজেন্টটি প্রথমে সঠিকভাবে সেট করা হচ্ছে তা নিশ্চিত করুন। হতে পারে এটি কোনও স্থানীয় ওয়েব সার্ভারে আঘাত করেছে বা ট্র্যাফিক বাইরে বেরিয়ে আসছে।


আমি মনে করি আপনি সঠিক পথে আছেন। আমি আমার সেটআপটি দিয়ে পরীক্ষা করেছি এবং ব্যবহারকারীর এজেন্টকে একটি বৈধ ব্যবহারকারী এজেন্ট স্ট্রিংয়ের সাথে প্রতিস্থাপন করেছি যা সফলভাবে পেরেছে এবং একই ফলাফল পেয়েছে, স্টাবহব অনুরোধটিকে অবরুদ্ধ করেছে।
ব্রায়ান কেইন

1
এই বিষয়টি খুব বিস্তৃত, আমি বলব যদি আপনি এটি বুঝতে না পারেন, এবং আপনি এটি বুঝতে চান, এখানে সঠিক জায়গা নেই। Owasp দিয়ে শুরু করুন। অনুপ্রবেশ পরীক্ষা এবং ওয়েব সুরক্ষার দিকে নজর দিন। এছাড়াও, যেমনটি আমি আগে বলেছিলাম, বিশেষত এই বিষয়টির জন্য মোডেসকিউরিটি এবং ডাব্লুএএফএটি দেখুন।
বাসেল সম্মান

1
এটি যদি এইচটিটিপি শিরোলেখ সমস্যা হয় তবে সাধারণ ব্রাউজারটি কী অবরুদ্ধ হবে না? এইচটিটিপি শিরোনামগুলি হুবহু এক। এছাড়াও আমি সেই গিথুব লিঙ্কটি দিয়ে ঠিক কী দেখছি? আপনি stubhub যেতে সেলেনিয়াম ব্যবহার করার চেষ্টা করেছেন? কিছু খুব বন্ধ।
রায়ান ওয়েইনস্টাইন 21

1
আমি বিভ্রান্তির জন্য দুঃখিত। আমি এটি সন্ধান করব এবং আপনি না চাইলে আপনাকে আর আমাকে সাহায্য করতে হবে না। আমার বেশিরভাগ অভিজ্ঞতা প্রোগ্রামিং সিস্টেম অ্যাপ্লিকেশনগুলিতে, সুতরাং আপনি যে মোডেস্কিউরিটি নিয়মগুলির কথা বলছেন তা সম্পর্কে আমি পরিচিত ছিলাম না। আমি একবার দেখে নেব এবং নিজেকে শিক্ষিত করার চেষ্টা করব। আমি কোনও কিছুকে বাইপাস করার চেষ্টা করছি না, এই ওয়েবসাইটগুলি কীভাবে সেলেনিয়াম ব্যবহার করে কোনও ব্যবহারকারীকে সনাক্ত করে তা জানতে আগ্রহী ছিলাম।
রায়ান ওয়েইনস্টাইন

1
আমিও বিকাশকারী :)। শেখার একটি কারণ যা আমি পিছনে পেতে পারি। আমি সাহায্য করতে কিছু মনে করি না, আমি কেবল পরিষ্কার করতে চেয়েছিলাম যে আমি আপনার উদ্দেশ্যগুলি জানি না এবং তাদের ওয়েবসাইট সুরক্ষা বাইপাস করতে আপনাকে ঠিক সহায়তা করতে পারি না। যদিও আপনার প্রশ্নের উত্তর দেওয়ার জন্য, এটি সেলেনিয়াম নয় যে তারা সনাক্ত করছে। বিধিগুলি সন্দেহজনক আচরণ সনাক্ত করেছে এবং আপত্তিজনক ক্লায়েন্টের বিরুদ্ধে উপযুক্ত ব্যবস্থা নেওয়ার সিদ্ধান্ত নিয়েছে। আপনি যা করছেন তার চেয়ে বেশি আপনি কী করছেন না তা দ্বারা তারা আপনাকে ধরবে। রেপো লিঙ্কে, আপনি একটি ধারণা পেতে এই ফাইলটি চেকআউট করতে পারেন বেস_রুলস / মোডেস্কিউরিটি_সিআরস_20_প্রোটোকল_ভিওলেশনস কনফ
বাসেল সম্মান

6

এমনকি যদি আপনি সমস্ত সঠিক ডেটা প্রেরণ করছেন (যেমন সেলেনিয়াম কোনও এক্সটেনশন হিসাবে দেখায় না, আপনার একটি যুক্তিসঙ্গত রেজোলিউশন / বিট-গভীরতা এবং সি আছে), এমন অনেকগুলি পরিষেবা এবং সরঞ্জাম রয়েছে যা নির্ধারণ করতে দর্শকের আচরণের প্রোফাইল নির্ধারণ করে অভিনেতা একজন ব্যবহারকারী বা একটি স্বয়ংক্রিয় সিস্টেম।

উদাহরণস্বরূপ, কোনও সাইট পরিদর্শন করার পরে তাত্ক্ষণিকভাবে মাউসটিকে প্রাসঙ্গিক বোতামে সরিয়ে দিয়ে কিছু ক্রিয়া সম্পাদন করতে যাওয়া, এক সেকেন্ডেরও কম সময়ে, কোনও ব্যবহারকারী আসলে এমনটি করবে না।

আপনার ব্রাউজারটি কতটা অনন্য, তা পরীক্ষা করতে https://panopticlick.eff.org/ এর মতো কোনও সাইট ব্যবহার করতে এটি ডিবাগিং সরঞ্জাম হিসাবে কার্যকর হতে পারে ; এটি আপনাকে নির্দিষ্ট করে কোনও পরামিতি রয়েছে কিনা তা যাচাই করতে আপনাকে সহায়তা করবে যা আপনি সেলেনিয়ামে চালাচ্ছেন তা নির্দেশ করে।


3
আমি ইতিমধ্যে সেই ওয়েবসাইটটি ব্যবহার করেছি এবং আঙুলের ছাপটি আমার সাধারণ ব্রাউজারের মতো। এছাড়াও আমি কিছুই স্বয়ংক্রিয় করছি না। আমি কেবল স্বাভাবিক হিসাবে ব্রাউজ করছি।
রায়ান ওয়েইনস্টেইন

6

নীচের উত্তরে আমি যে বট সনাক্ত করেছি তা আরও পরিশীলিত বা কমপক্ষে আলাদা বলে মনে হয়েছে।

অভিজ্ঞতা 1:

  1. আমি পাইথন কনসোল থেকে সেলেনিয়াম সহ একটি ব্রাউজার এবং ওয়েব পৃষ্ঠা খুলি।
  2. মাউস ইতিমধ্যে নির্দিষ্ট স্থানে রয়েছে যেখানে আমি জানি যে পৃষ্ঠাটি লোড হয়ে গেলে কোনও লিঙ্ক উপস্থিত হবে। আমি কখনই মাউস সরান না।
  3. আমি একবার বাম মাউস বোতাম টিপুন (পাইথন ব্রাউজারে চলছে এমন কনসোল থেকে ফোকাস নেওয়া প্রয়োজন)।
  4. আমি আবার বাম মাউস বোতাম টিপুন (মনে রাখবেন, কার্সার একটি প্রদত্ত লিঙ্কের উপরে)।
  5. লিঙ্কটি স্বাভাবিকভাবে খোলে, যেমনটি হওয়া উচিত।

ব্যবহার 2:

  1. আগের মত, আমি পাইথন কনসোল থেকে সেলেনিয়াম সহ একটি ব্রাউজার এবং ওয়েব পৃষ্ঠা খুলি।

  2. এবার প্রায়, মাউসটি ক্লিক করার পরিবর্তে, আমি এলোমেলো অফসেট সহ একই উপাদানটি ক্লিক করতে সেলেনিয়াম (পাইথন কনসোলে) ব্যবহার করি।

  3. লিঙ্কটি খোলে না, তবে আমাকে সাইন আপ পৃষ্ঠায় নিয়ে যাওয়া হয়েছে।

প্রভাব:

  • সেলেনিয়ামের মাধ্যমে একটি ওয়েব ব্রাউজার খোলার ফলে আমাকে মানুষের উপস্থিতি থেকে বিরত করা যায় না
  • মানুষের মতো মাউসকে সরানো মানুষের শ্রেণিবদ্ধকরণের প্রয়োজন হয় না
  • অফসেট সহ সেলেনিয়ামের মাধ্যমে কিছুতে ক্লিক করা এখনও অ্যালার্ম উত্থাপন করে

রহস্যজনক বলে মনে হচ্ছে তবে আমার ধারণা, তারা কেবল নির্ধারণ করতে পারে কোনও ক্রিয়া সেলেনিয়াম থেকে উদ্ভূত কিনা, যদিও ব্রাউজারটি নিজেই সেলেনিয়ামের মাধ্যমে খোলা হয়েছিল কি না সে বিষয়ে তারা চিন্তা করে না। বা তারা কি উইন্ডোতে ফোকাস আছে তা নির্ধারণ করতে পারে? কারও অন্তর্দৃষ্টি আছে তা শুনতে আকর্ষণীয় হবে।


3
আমার বিশ্বাস হ'ল সেলেনিয়াম উপাদানগুলিকে সন্ধান এবং অ্যাক্সেস করার জন্য জাভাস্ক্রিপ্টের মাধ্যমে পৃষ্ঠায় কোনও কিছু সংযোজন করে। এই ইঞ্জেকশনটিই আমি বিশ্বাস করি তারা সনাক্ত করছে।
জিউসেলামিটি

আপনি ঠিক বলেছেন, এই পরীক্ষাটি 100% বৈধ। আমি একই ফলাফল সঙ্গে একই পরীক্ষা ছিল। আমি প্রবেশ ট্যাব পাঠাতে বা কীগুলি প্রেরণ করতে পারি। যে মুহুর্তে আমি উপাদানগুলিতে অ্যাক্সেস করেছি পৃষ্ঠাটি কাজ করা বন্ধ করে দিয়েছে। তাই যদি ড্রাইভার ব্রাউজারে কিছু জাভাস্ক্রিপ্ট ইনজেক্ট করে। আমরা ক্রোম এক্সটেনশন ব্যবহার করে জাভাস্ক্রিপ্টটি কেবল এনক্রিপ্ট করতে পারি এবং একই এক্সটেনশানটি ব্যবহার করে পরবর্তী পৃষ্ঠায় ডিক্রিপ্ট করতে পারি। আমি পরের দিন এটি দেখার চেষ্টা করব।
ট্রিক্সো

6

আমি আরও একটি জিনিস খুঁজে পেলাম যে কয়েকটি ওয়েবসাইট একটি প্ল্যাটফর্ম ব্যবহার করে যা ব্যবহারকারী এজেন্টকে পরীক্ষা করে। যদি মানটি থাকে: "হেডলেসক্রোম" শিরোনামহীন মোড ব্যবহার করার সময় আচরণটি অদ্ভুত হতে পারে।

এর জন্য কার্যকারণটি ব্যবহারকারীর এজেন্ট মানকে ওভাররাইড করা হবে, উদাহরণস্বরূপ জাভাতে:

chromeOptions.addArguments("--user-agent=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36");

5

কিছু সাইট এটি সনাক্ত করছে:

function d() {
try {
    if (window.document.$cdc_asdjflasutopfhvcZLmcfl_.cache_)
        return !0
} catch (e) {}

try {
    //if (window.document.documentElement.getAttribute(decodeURIComponent("%77%65%62%64%72%69%76%65%72")))
    if (window.document.documentElement.getAttribute("webdriver"))
        return !0
} catch (e) {}

try {
    //if (decodeURIComponent("%5F%53%65%6C%65%6E%69%75%6D%5F%49%44%45%5F%52%65%63%6F%72%64%65%72") in window)
    if ("_Selenium_IDE_Recorder" in window)
        return !0
} catch (e) {}

try {
    //if (decodeURIComponent("%5F%5F%77%65%62%64%72%69%76%65%72%5F%73%63%72%69%70%74%5F%66%6E") in document)
    if ("__webdriver_script_fn" in document)
        return !0
} catch (e) {}

এটি ক্রোম এবং ফায়ারফক্স, সেলেনিয়াম 3.5.0, ক্রোমড্রাইভার 2.31.488774, গেকোড্রাইভার 0.18.0
জেরিপি

4

নিম্নলিখিত কোড সহ একটি এইচটিএমএল পৃষ্ঠা লিখুন। আপনি দেখতে পাবেন যে ডোম সেলেনিয়ামে বাইরের এইচটিএমএলতে একটি ওয়েবড্রাইভার বৈশিষ্ট্য প্রয়োগ করে

<html>
<head>
  <script type="text/javascript">
  <!--
    function showWindow(){
      javascript:(alert(document.documentElement.outerHTML));
    }
  //-->
  </script>
</head>
<body>
  <form>
    <input type="button" value="Show outerHTML" onclick="showWindow()">
  </form>
</body>
</html>


4
বৈশিষ্ট্যটি কেবল ফায়ারফক্সে যুক্ত করা হয়।
লুই

1
এবং ব্রাউজারকে নিয়ন্ত্রণ করে এমন সেলেনিয়াম এক্সটেনশন থেকে এটিকে সরিয়ে ফেলা সম্ভব। এটি যেভাবেই চলবে।
এম

3

আমি জাভাস্ক্রিপ্ট "কী" ভেরিয়েবল এর মত পরিবর্তন করতে পেয়েছি:

//Fools the website into believing a human is navigating it
        ((JavascriptExecutor)driver).executeScript("window.key = \"blahblah\";");

গুগল ক্রোমের সাথে সাথে সেলেনিয়াম ওয়েবড্রাইভার ব্যবহার করার সময় কয়েকটি ওয়েবসাইটের জন্য কাজ করে, যেহেতু অনেকগুলি সাইট সেলেনিয়ামের হাতছাড়া না হওয়ার জন্য এই পরিবর্তনশীলটির জন্য পরীক্ষা করে।


2

সেলেনিয়ামের সাথে এটি করার সহজ উপায়টি আমার কাছে মনে হচ্ছে এক্সএইচআরকে ব্রাউজারের ফিঙ্গারপ্রিন্টটি ফেরত পাঠানো।

তবে এটি যেহেতু কেবলমাত্র সেলেনিয়াম সমস্যা, তাই অন্য কিছু ব্যবহার করা আরও ভাল। সেলেনিয়াম এর মতো জিনিস সহজ করে নেবে বলে মনে করা হচ্ছে, আরও শক্ত নয়।


সেলেনিয়ামের অন্যান্য বিকল্পগুলি কী কী?
তাই

আমার ধারণা, অনুরোধগুলি মূল অজগর বিকল্প হবে option আপনার ব্রাউজারটি যে অনুরোধগুলি প্রেরণ করে আপনি যদি একই অনুরোধগুলি প্রেরণ করেন তবে আপনি একটি সাধারণ ব্রাউজার হিসাবে উপস্থিত হবেন।
pguardiario

2

আপনি "সক্ষম-অটোমেশন" প্যারামিটারটি ব্যবহার করার চেষ্টা করতে পারেন

var options = new ChromeOptions();

// hide selenium
options.AddExcludedArguments(new List<string>() { "enable-automation" });

var driver = new ChromeDriver(ChromeDriverService.CreateDefaultService(), options);

তবে আমি সতর্ক করতে চাই যে এই ক্ষমতাটি ChromeDriver 79.0.3945.16 এ স্থির হয়েছিল । সুতরাং সম্ভবত আপনার ক্রোমের পুরানো সংস্করণগুলি ব্যবহার করা উচিত।

এছাড়াও, অন্য বিকল্প হিসাবে আপনি Chrome এর পরিবর্তে InternetExplorerDriver ব্যবহার করতে পারেন। আমার হিসাবে, IE কোনও হ্যাক ছাড়াই মোটেও অবরোধ করে না।

এবং আরও তথ্যের জন্য এখানে একবার দেখার চেষ্টা করুন:

সেলেনিয়াম ওয়েবড্রাইভার: সেলেনিয়াম সনাক্তকরণ প্রতিরোধের জন্য নেভিগেটর.আরবিড্রাইভার পতাকা সংশোধন করা হচ্ছে

"ক্রোম স্বয়ংক্রিয় সফ্টওয়্যার দ্বারা নিয়ন্ত্রিত হচ্ছে" Chrome v76 এর মধ্যে ইনফোবারটি আড়াল করতে অক্ষম

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.