আপনি raw HTTP থেকে একটি আসল ব্রাউজারে সরে এসেছেন। TLS fingerprint: সত্যিকারের Chrome-এর। IP: residential। আর তবুও সাইটটি জানে। ২০২৬ সালে, headless browser detection navigator.webdriver-এর অনেক দূর এগিয়ে গেছে — বর্তমান প্রজন্মের পরীক্ষাগুলো automation প্রোটোকল নিজেই শনাক্ত করে, এবং বেশিরভাগ "stealth" প্লাগইন গতকালের সিগন্যাল প্যাচ করে অথচ আজকের সিগন্যাল জোরেশোরে প্রকাশ করে।
এই নিবন্ধটি মোটামুটিভাবে সাইটগুলো যে ক্রমে পরীক্ষা করে সেই ক্রমে এখন আসলে কী পরীক্ষা করে তা মানচিত্রায়িত করে, এবং প্রতিটি স্তরে আসলে কী সাহায্য করে তা দেখায়। এটি JA3/JA4 TLS fingerprinting (নেটওয়ার্ক স্তর) এবং IP reputation & ASN (অ্যাড্রেস স্তর) দিয়ে শনাক্তকরণ ত্রয়ী সম্পূর্ণ করে — এটি হলো ব্রাউজার স্তর।
navigator.webdriver — স্পেসিফিকেশন অনুযায়ী automation-এর অধীনে true হওয়া প্রয়োজন। Playwright/Puppeteer stealth সেটআপগুলো এটি লুকিয়ে রাখে; Chrome-এর --disable-blink-features=AutomationControlled এটি স্বাভাবিকভাবেই সামলায়। সাইটগুলো এখনও এটি পরীক্ষা করে কারণ এটি বিনামূল্যে এবং সরল বটগুলোকে ধরে।HeadlessChrome/। নতুন headless মোড (headless=new) দিয়ে ঠিক করা হয়েছে, যা আসল Chrome বাইনারি পথ ব্যবহার করে।navigator.plugins, কোনো chrome.runtime নেই, 0×0 outerWidth। পুরোনো headless মোড এগুলো সবই ব্যর্থ হতো; নতুন headless বেশিরভাগই উত্তীর্ণ হয়।যদি কোনো টার্গেট শুধুমাত্র Tier 1 পরীক্ষা করে, তাহলে headless=new সহ আধুনিক Playwright অনায়াসে পার হয়ে যায়। গুরুতর টার্গেটগুলো বছরখানেক আগেই এর বাইরে চলে গেছে।
Playwright এবং Puppeteer Chrome DevTools Protocol-এর মাধ্যমে Chrome চালায়, এবং CDP রানটাইম পার্শ্বপ্রতিক্রিয়া রেখে যায় যা পেজের JavaScript পর্যবেক্ষণ করতে পারে:
// The classic CDP leak: serialization callbacks
const err = new Error();
Object.defineProperty(err, "stack", {
get() {
// This getter fires DURING console serialization -
// which only happens when DevTools/CDP is attached
window.__cdp_detected = true;
},
});
console.debug(err);
এর ভ্যারিয়েন্টগুলো — console serialization-এর সময় getter পার্শ্বপ্রতিক্রিয়া, Runtime.evaluate-এ টাইমিং অসঙ্গতি, প্যাচ করা native ফাংশনগুলোর উপর toString()-এর আচরণ — প্রতিটি বাণিজ্যিক anti-bot বান্ডিলে রয়েছে। গুরুত্বপূর্ণ বিষয়: এটি প্রোটোকল শনাক্ত করে, headless মোড নয়। একটি headed, stealth-প্যাচ করা, নিখুঁতভাবে মানুষের মতো দেখতে Chrome-ও CDP-এর মাধ্যমে চালালে ব্যর্থ হয়।
যা সাহায্য করে:
আর্টিফ্যাক্টের বাইরে, আধুনিক সিস্টেমগুলো পরীক্ষা করে আপনার ব্রাউজারের গল্পটি অভ্যন্তরীণভাবে সামঞ্জস্যপূর্ণ কিনা:
| পরীক্ষা | বটের আভাস |
|---|---|
| Canvas / WebGL render hash | SwiftShader/llvmpipe সফটওয়্যার রেন্ডারিং = সার্ভার GPU; অথবা ১০,০০০ "ভিন্ন ব্যবহারকারীর" দ্বারা শেয়ার করা একটি hash |
| Fonts & codecs | Windows User-Agent-এর অধীনে Linux সার্ভার ফন্ট সেট |
| Timezone × locale × IP geo | Intl বলে UTC, IP বলে Texas, Accept-Language বলে de-DE |
| স্ক্রিন মেট্রিক্স | শূন্য taskbar সহ 1920×1080, devicePixelRatio ঠিক 1, উইন্ডো কখনও resize হয়নি |
| Hardware concurrency / memory | একটি ফোন বলে দাবি করা পেজে ৯৬ কোর রিপোর্ট করা |
| আচরণগত মাইক্রো-সিগন্যাল | কোনো মাউস এনট্রপি নেই, তাৎক্ষণিক ফর্ম পূরণ, অভিন্ন 100px ধাপে স্ক্রোল |
এখানেই DIY stealth মারা যায়: আপনি যে প্রতিটি প্যাচ প্রয়োগ করেন তা প্রতিটি অন্য সিগন্যালের সাথে একমত হতে হবে। একটি Linux কন্টেইনারে একটি spoof করা Windows UA একই সাথে ফন্ট, GPU স্ট্রিং এবং TCP fingerprint-এর বিপরীত হয়। নিখুঁততার চেয়ে সামঞ্জস্য বেশি গুরুত্বপূর্ণ — একটি সৎ headed Linux Chrome একটি খারাপভাবে spoof করা "Windows"-এর চেয়ে ভালো স্কোর করে।
এর কোনোটাই গুরুত্বপূর্ণ নয় যদি অ্যাড্রেস স্তর পুড়ে যায়: একটি datacenter ASN-এ একটি নিখুঁত ব্রাউজার এখনও "একটি datacenter-এ একটি নিখুঁত ব্রাউজার" — এবং headless detection থ্রেশহোল্ড IP reputation-এর সাথে অভিযোজিত। একই ব্রাউজার একটি flag করা IP থেকে আরও বেশি JavaScript চ্যালেঞ্জ পায়। Residential exits কার্যকরভাবে ব্রাউজার স্তরকে যে পরিমাণ যাচাই-বাছাইয়ের মধ্যে টিকে থাকতে হয় তা কমিয়ে দেয়:
browser = p.chromium.launch(
headless=False, # headed survives more checks
args=["--disable-blink-features=AutomationControlled"],
proxy={
"server": "us.jibaoproxy.com:913",
"username": "USERNAME", "password": "PASSWORD",
},
)
toString() নিজেই একটি সিগন্যাল। কম, সামঞ্জস্যপূর্ণ প্যাচ জয়ী হয়।আপনার fingerprint যে গল্প বলে তার সাথে মিলে যাওয়া Residential IP — 500MB ফ্রি ট্রাফিক, কোনো কার্ড প্রয়োজন নেই।
বিনামূল্যে ট্রায়াল শুরু করুননতুন ব্যবহারকারীরা নিবন্ধনের সময় 500MB পান, সাথে প্রথম রিচার্জে বোনাস। সীমিত সময়ের অফার।