سؤال

أنا أعمل على ZOHO API وأحاول تحديث السجل باستخدام cURL.لقد جربت أشكالًا مختلفة من cURL، لكنها دائمًا ما تُرجع "خطأ".ولكن عندما أقوم بالاتصال بنفس عنوان URL باستخدام المتصفح، فإنه يعمل.

هل هناك أي طريقة يمكنهم من خلالها حظر طلبات cURL؟هل هناك أي طريقة أخرى يمكنني من خلالها الاتصال بعنوان URL هذا باستخدام POST أو ربما طلب GET؟

رمز cURL الذي جربته هو كما يلي:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, 0);
$data = curl_exec($ch);
curl_close($ch);
هل كانت مفيدة؟

المحلول

لا تستطيع الخوادم حظر طلبات cURL في حد ذاتها ، ولكن يمكنها حظر أي طلب لا تحبه.إذا تحقق الخادم من بعض المعلمات التي لا يفي بها طلب cURL ، فقد يقرر الاستجابة بشكل مختلف.

في الغالبية العظمى من الحالات ، يتم تشغيل هذا الاختلاف في السلوك من خلال وجود (أو عدم وجود) وقيم رؤوس طلبات HTTP.على سبيل المثال ، قد يتحقق الخادم من أن رأس رمز التوليف العام موجود وله قيمة صالحة (يمكنه أيضًا التحقق من الكثير من الأشياء الأخرى).

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

لإضافة الرؤوس الخاصة بك إلى طلب عنوان URL الخاص بك ، استخدم Genacodicetagpre

نصائح أخرى

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

  1. قم بتمرير نفس رؤوس المستعرضات لديك (استخدم على سبيل المثال Firebug للحصول عليها)

    genacodicetagpre
  2. تغيير وكيل المستخدم (اسم المتصفح) genacodicetagpre

  3. تمكين ملفات تعريف الارتباط (مثل إعادة التوجيه ومعالجة الجلسة) genacodicetagpre

  4. إضافة إحالات genacodicetagpre

وأدعو الله ألا يفوتك شيء!

للإجابة على سؤالك "هل هناك أي طريقة يمكنهم من خلالها حظر طلبات CURL؟":نعم، في الواقع يمكن للمرء اكتشاف طلب cURL من خلال قراءة ملف User-Agent header.

يمكنك تغيير وكيل المستخدم عن طريق الاتصال curl_setopt($ch, CURLOPT_USERAGENT, 'My user agent string!');.

لتوضيح المزيد حول هذا الموضوع ، يمكنك استخدام curl_setopt ($ ch، CURLOPT_USERAGENT، 'Mozilla / 5.0')؛أو شيء من هذا القبيل لتزييف وكيل المستخدم.في هذه الحالة ، قد يعتقد الخادم أن متصفح Firefox هو من يقدم الطلب.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top