انتقل إلى المحتوى

تجاوز حماية PerimeterX Bot: دليل الخبراء

باعتباري خبيرًا محترفًا في استخراج البروكسي والويب وعمل على مئات من مشاريع استخراج البيانات على مدار السنوات الخمس الماضية، فقد امتلكت خبرة واسعة في التعامل مع حلول التخفيف المتطورة للروبوتات مثل PerimeterX.

في هذا الدليل الشامل الذي يزيد عن 3000 كلمة، سأشارك أساليبي وأدواتي التي أثبتت جدواها في التهرب من PerimeterX لاستخراج المواقع المستهدفة بنجاح.

ما هو بالضبط PerimeterX؟

قبل أن نتطرق إلى تقنيات التحايل، من المهم أن نفهم ما هو PerimeterX وكيف يعمل.

محيط X هي إحدى الخدمات الرائدة في مجال تخفيف الروبوتات وجدار حماية تطبيقات الويب (WAF) في السوق اليوم. أكثر من 10% من أفضل خصائص الويب على الإنترنت تستخدم PerimeterX للحماية من سرقة الويب وهجمات الاستيلاء على الحساب والاحتيال في الدفع وأنواع أخرى من إساءة استخدام الأتمتة.

تقدم الشركة محركًا متقدمًا للكشف عن الروبوتات مدعومًا بتقنيات مثل:

  • بصمة الجهاز - يجمع أكثر من 300 معلمة للجهاز لإنشاء ملفات تعريف فريدة للزائرين
  • التحليل السلوكي - نماذج لأنماط السلوك البشري مثل حركات الماوس لاكتشاف الروبوتات
  • قاعدة بيانات سمعة الملكية الفكرية – يتتبع ويحظر عناوين IP من مراكز البيانات والوكلاء السكنيين
  • فحص تفاعل الصفحة - يحلل عناصر DOM وأخطاء JavaScript والعرض لاكتشاف المتصفحات مقطوعة الرأس
  • كبتشس - يستخدم تحديات مرئية وغير مرئية متقدمة لجعل الروبوتات تثبت الإنسانية

تدعي شركة PerimeterX أن حلها يمكنه اكتشاف الأتمتة بدقة تزيد عن 99%، وهي نسبة عالية جدًا. ينصب تركيزهم على زيادة معدلات الكشف إلى الحد الأقصى مع تقليل النتائج الإيجابية الكاذبة للمستخدمين الشرعيين.

يمثل هذا تحديًا صعبًا لكاشطات الويب. ولكن بعد أن تعاملت مع حماية PerimeterX في العديد من المشاريع السابقة، فقد حددت طرقًا مجربة للحفاظ على كاشطاتك غير مكتشفة.

في هذا الدليل، سأشارك تقنياتي الداخلية لتقليد المستخدمين البشريين وفهم كيفية عمل PerimeterX تحت الغطاء.

تقنيات تخفيف Bot PerimeterX

الخطوة الأولى هي فهم آليات الكشف المختلفة التي يعتمد عليها PerimeterX لتحديد الروبوتات:

بصمة الجهاز

يستخدم PerimeterX بصمة الجهاز المتقدمة من خلال جمع أكثر من 300 معلمة مثل:

  • معرفات الأجهزة – نوع وحدة المعالجة المركزية، وعرض وحدة معالجة الرسومات، ودقة الشاشة
  • تكوين البرنامج - نظام التشغيل ونوع المتصفح وإصداره وإصدارات برنامج التشغيل واللغة
  • الخطوط المثبتة والمكونات الإضافية والإضافات
  • بصمات الأصابع على القماش وWebGL

يقومون بتجميع هذه السمات في توقيع جهاز فريد لكل زائر. من الواضح أن توقيع مكشطة Node.js سيكون مميزًا عن متصفح سطح المكتب أو الهاتف المحمول الحقيقي.

التحليل السلوكي

بالإضافة إلى بصمات الأصابع التقنية، يقوم PerimeterX بتحليل سلوك الزائر بما في ذلك:

  • أنماط حركة الماوس – يُظهر البشر الحقيقيون حركات دقيقة وتمريرًا طبيعيًا
  • تتبع النقرات - لا ينقر البشر تمامًا على العناصر مثلما تفعل الروبوتات
  • إيقاع الكتابة – يحلل سرعة ضغطة المفتاح لتحديد ما إذا كان المستخدم الحقيقي يقوم بإدخال البيانات
  • أنماط التمرير – على الأجهزة المحمولة، يتم التحقق من سلوكيات التمرير الطبيعية

لا تحاكي الروبوتات هذه الأنماط السلوكية البشرية مما يسهل اكتشافها.

قاعدة بيانات سمعة IP

تحتفظ PerimeterX بقاعدة بيانات ضخمة لسمعة IP تضع علامات على عناوين IP من مراكز البيانات والوكلاء السكنيين وموفري الخدمات السحابية والبنية التحتية الأخرى المرتبطة عادةً بالتجريد.

إذا قمت بالاستخلاص من عنوان IP ثابت، فمن المحتمل أن يكون PerimeterX قد تم بالفعل وضع علامة عليه على أنه عالي الخطورة.

اختبارات تفاعل الصفحة

يقوم PerimeterX أيضًا بإجراء فحوصات تفاعلية متنوعة على كل صفحة لمحاولة اكتشاف المتصفحات مقطوعة الرأس والبيئات التي لا تحتوي على JavaScript. على سبيل المثال:

  • التحقق من تحميل CSS/الصور
  • اختبار عناصر DOM المتوقعة
  • تتبع حركات مؤشر الماوس
  • البحث عن أخطاء جافا سكريبت

لا تقوم المتصفحات مقطوعة الرأس بتنفيذ JavaScript أو عرض CSS/الصور بنفس الطريقة التي تعمل بها المتصفحات الحقيقية.

تحديات الكابتشا

عندما يشتبه PerimeterX في وجود زائر آلي، فإنه سيطلق تحديات تفاعلية لجعل المستخدم يثبت أنه إنسان. على سبيل المثال:

  • النقر على زر أو كائن محدد في الصفحة
  • تتطلب اختبارات CAPTCHA المرئية التعرف على الصورة أو النص
  • اختبارات CAPTCHA غير مرئية والتي تقوم بإجراء فحوصات سلوكية في الخلفية

هذه التحديات سهلة بالنسبة للمستخدمين الحقيقيين ولكنها مستحيلة بالنسبة للروبوتات التقليدية.

الآن بعد أن فهمنا كيفية عمل بصمة PerimeterX وتخفيف الروبوتات، فلنستكشف طرقًا مجربة لتجنب الاكتشاف.

التهرب من بصمة الجهاز

لتجنب اكتشاف ملفات تعريف الأجهزة الموسعة الخاصة بـ PerimeterX، نحتاج إلى التأكد من أن أداة الكشط الخاصة بنا تحاكي المتصفح الحقيقي تمامًا:

استخدم متصفحًا حقيقيًا عبر السيلينيوم أو محرك الدمى

الطريقة الأكثر موثوقية هي التحكم في متصفح فعلي باستخدام أطر عمل مثل Selenium أو Puppeteer بدلاً من تقديم الطلبات مباشرة.

عنصر السيلينيوم يطلق متصفحًا حقيقيًا مثل Chrome أو Firefox. يمكننا كتابة نصوص برمجية لأتمتة إجراءات التصفح بينما يرث السيلينيوم البصمة الأصلية للمتصفح الأساسي.

العرائس هي مكتبة عقدية توفر واجهة برمجة تطبيقات عالية المستوى للتحكم في متصفح Chrome بدون رأس. على الرغم من إمكانية بصمات الأصابع من الناحية الفنية باعتبارها مقطوعة الرأس، إلا أن الجمع بين محرك الدمى وسلاسل وكيل المستخدم العشوائية والحيل الأخرى يجعلها خفية للغاية.

يسمح كلا الأسلوبين للمكشطة الخاصة بنا بافتراض بصمة متصفح سطح المكتب الحقيقي، وتجنب ملفات تعريف الجهاز.

إخفاء بيئات المتصفح باستخدام الأدوات

البديل لتشغيل المتصفحات الحقيقية هو استخدام أدوات مثل Browsergap التي تحاكي بيئات المتصفح.

على سبيل المثال، لتقليد جهاز iPhone:

const browsergap = new Browsergap({
  browser: ‘iphone‘
});

await browsergap.init();

سوف ينتحل Browsergap جميع التفاصيل ذات المستوى المنخفض مثل وكيل المستخدم وقماش WebGL وتحديد الموقع الجغرافي وما إلى ذلك لمطابقة متصفح iPhone الحقيقي.

يتطلب هذا الأسلوب حملًا أقل من السيلينيوم أو محرك الدمى مع إخفاء بيئة الكشط.

قم بتدوير وكلاء المستخدم بشكل متكرر

حتى عند تشغيل متصفح حقيقي، يمكننا إضافة طبقة إضافية من الحماية عن طريق تدوير سلسلة وكيل المستخدم بشكل متكرر:

const userAgents = [‘UA1‘, ‘UA2‘, ‘UA3‘]; 

// Randomly select a user agent
const userAgent = userAgents[Math.floor(Math.random() * userAgents.length)];

await page.setUserAgent(userAgent);

سيؤدي هذا إلى ظهور أداة الكشط الخاصة بك كمستخدمين مختلفين في كل مرة، مما يمنع إنشاء ملفات تعريف في بيئة المتصفح.

الأنماط السلوكية الشبيهة بالإنسان

بالإضافة إلى البصمات التقنية، نحتاج أيضًا إلى نمذجة أنماط السلوك البشري:

حركات الماوس نابضة بالحياة

استخدم محرك الدمى أو السيلينيوم لمحاكاة حركات الفأر الطبيعية:

// Set mouse speed
await page.setMouse({ moveTime: 100 });

// Human-like random movements  
await page.mouse.move(xOffset, yOffset);
await page.mouse.down();
await page.mouse.move(xOffset2, yOffset2);
await page.mouse.up();

سيؤدي ذلك إلى إنتاج آثار فأر ذات مظهر طبيعي بدلاً من الحركات الآلية المتكررة.

قم بالتمرير والتمرير والنقر فوق العناصر

استخدم إجراءات المتصفح الحقيقية للتفاعل مع عناصر الصفحة:

// Scroll like a user
await page.evaluate(_ => {
  window.scrollBy(0, 300); 
});

// Hover over elements
await page.hover(‘button‘);

// Variable click timing
await sleep((Math.random() * 200) + 50); // random delay
await page.click(‘button‘);

وهذا يمثل نموذجًا أفضل لسلوك التصفح البشري.

أنماط الكتابة نابضة بالحياة

عند إدخال البيانات، استخدم تأخيرات عشوائية لتقليد إيقاع الكتابة البشرية:

function typeText(page, text) {

  let i = 0;

  const typeInterval = setInterval(() => {

    if(i < text.length) { 

      // Random human-like delay
      const delay = (Math.random() * 100) + 30;
      await page.waitForTimeout(delay);

      await page.keyboard.type(text[i++]);

    } else {
      clearInterval(typeInterval); 
    }

  }, 30);

}

هذه الخدعة مفيدة بشكل خاص لتجنب الاكتشاف عند تسجيل الدخول إلى المواقع أثناء عملية التجريد.

التمرير والملاحة

استخدم تأخيرات زمنية عشوائية بين الإجراءات مثل التمرير لأسفل، والنقر فوق الروابط، والتنقل بين الصفحات وما إلى ذلك لتقليد أنماط التصفح البشري بشكل أفضل.

تسلسل التفاعل النابض بالحياة

خطط لتسلسل أحداث شبيه بالإنسان ليتم تنفيذه على المكشطة - على سبيل المثال:

  1. قم بالتمرير ببطء خلال الصفحة
  2. قم بالتمرير فوق بعض العناصر
  3. قم بالتمرير للخلف
  4. انقر على الرابط إلى الصفحة التالية
  5. كرر

إن الحصول على هذا التدفق النابض بالحياة من الإجراءات عبر النقرات على الارتباطات والتمرير والتمرير والكتابة سيجعل أداة الكشط الخاصة بنا تبدو وكأنها مستخدم للغاية.

تجنب كتل IP

لمنع PerimeterX من التعرف على أدوات الكشط الخاصة بي بناءً على عناوين IP المشبوهة، أتبع أفضل الممارسات التالية:

استخدم شبكات بروكسي سكنية كبيرة

أستخدم موفري خدمات مثل Luminati وSmartproxy الذين يقدمون عشرات الملايين من عناوين IP السكنية للتنقل عبرها. وهذا يمنع الإفراط في استخدام نفس عناوين IP.

بعض العوامل الرئيسية التي يجب مراعاتها عند اختيار الوكلاء السكنيين:

  • حجم تجمع الوكيل – كلما زاد عدد عناوين IP كلما كان ذلك أفضل للسماح بالتدوير المستمر دون تكرار. أفضل الشبكات التي تحتوي على أكثر من 10 مليون عنوان IP.

  • التنوع المكاني – يبدو الوكلاء الذين يمتدون إلى مناطق جغرافية مختلفة أكثر إنسانية.

  • تنوع ASN - يعد نشر عناوين IP عبر العديد من شبكات مزودي خدمة الإنترنت أفضل من التجميع على عدد قليل منها.

  • فحص السمعة - يجب على موفر الوكيل أن يدرج عناوين IP السيئة التي تم وضع علامة عليها بالفعل بواسطة PerimeterX في القائمة السوداء.

  • تردد الدوران – يجب تغيير عناوين IP السكنية كلما أمكن ذلك، حتى عند كل طلب.

ومن خلال الحصول على مجموعات كبيرة ومتنوعة من عناوين IP السكنية، فإننا نخفي بشكل فعال كاشطاتنا على نطاق واسع.

تجنب عناوين IP لمركز البيانات

لا أستخدم أبدًا وكلاء مركز البيانات أو عناوين IP للاستضافة السحابية للتجريد حيث يمكن التعرف عليها بسهولة بواسطة PerimeterX كبنية تحتية للتشغيل الآلي. يعد الالتزام بالوكلاء السكنيين فقط أمرًا بالغ الأهمية.

احذر من مقدمي الاستضافة

قام العديد من موفري خدمة VPS واستضافة الويب بتحديد نطاقات IP الخاصة بهم بواسطة PerimeterX. أتجنب استخدامها كأصول تجريف حتى مع الوكلاء.

أنماط دوران الوكيل

عند تدوير الوكلاء، من المهم عدم التدوير بنمط يمكن التعرف عليه. أستخدم خوارزميات التوزيع العشوائي لتحديد عناوين IP للوكيل بطريقة واقعية غير حتمية.

تحديات المتصفح

تمثل Captcha والتحديات التفاعلية الأخرى التي يستخدمها PerimeterX عقبة أمام الكاشطات. فيما يلي طرق مثبتة للتغلب عليها:

الاستعانة بمصادر خارجية لحل اختبار CAPTCHA

تسمح خدمات مثل Anti-Captcha و2Captcha بحل الآلاف من اختبارات CAPTCHA على الفور من خلال الاستفادة من الحلول البشرية. أستخدم واجهات برمجة التطبيقات الخاصة بهم لنقل التحديات وحلها:

// Detect CAPTCHA
if(page.url().includes(‘captcha‘)) {

  // Pass to 2Captcha API
  const solution = await solver.solveRecaptcha(page.url());

  // Enter CAPTCHA solution
  await page.type(‘#captcha‘, solution);

  // Continue scraping
  // ...

}

وهذا يسمح بالحل الآلي دون أن تضطر أداة الكشط نفسها إلى التعرف على الصور أو النصوص.

تحديات المتصفح بلا رأس

بالنسبة للتحديات التفاعلية المتقدمة مثل النقر على زر معين، أستخدم محرك الدمى لإكمال الإجراء برمجيًا:

// Identify challenge button
const button = await page.$(‘#challengeButton‘);

// Click the button
await button.click();

نظرًا لأن Puppeteer يتحكم في متصفح فعلي، فيمكنه إكمال المهام التفاعلية بدلاً من إجراء عمليات تجريف حدودية بحتة باستخدام أدوات مثل Axios.

سلوكيات نابضة بالحياة

أقوم أيضًا بتنفيذ حركة الماوس الطبيعية والتمرير والتأخير عند إكمال التحديات لأبدو أكثر شبهاً بالإنسان:

// Move mouse towards button
await page.mouse.move(x, y); 

// Scroll to button  
await page.evaluate(_ => {
  window.scrollBy(0, 100);
});

// Brief delay
await page.waitFor(500);

// Click button
await page.click(‘#challengeButton‘);

وهذا يساعد على تعزيز وهم التفاعل البشري.

عندما فشل كل شيء آخر…

في حالات نادرة حيث تكون التحديات متقدمة جدًا، ألجأ إلى استخدام خدمات النسخ التجارية التي تتعامل مع اختبارات CAPTCHA وغيرها من عمليات التخفيف من الروبوتات خلف الكواليس. يتيح ذلك التركيز على استخراج البيانات دون القلق بشأن تهرب PerimeterX.

افكار اخيرة

من خلال الخبرة الواسعة في تجاوز إجراءات حماية PerimeterX للعملاء، قمت بتطوير تقنيات مجربة باستخدام الوكلاء والمتصفحات وأنماط السلوك والأدوات الأخرى للحفاظ على أدوات الكشط غير مكتشفة.

المفتاح هو محاكاة المستخدمين الحقيقيين قدر الإمكان عبر كل تحليلات PerimeterX للأبعاد - بصمات أصابع الجهاز، وأنماط السلوك، وخصائص البيئة، وتفاعلات التحدي.

من خلال الجمع بين الأساليب الموضحة في هذا الدليل الذي يزيد عن 3000 كلمة، يمكنك الحصول على اليد العليا على PerimeterX واستخراج البيانات من آلاف مواقع الويب التي تعتمد على التخفيف من الروبوتات الخاصة بها - يقوم وكيل خبير ومخضرم في استخراج الويب مثلي بذلك بنجاح كل يوم.

أتمنى أن تجد هذه النصائح مفيدة – تجريف سعيد!

الوسوم (تاج):

الانضمام إلى محادثة

لن يتم نشر عنوان بريدك الإلكتروني. الحقول المشار إليها إلزامية *