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

يوفّر libcurl قائمة رؤوس مخصّصة للوكيل. في تطبيق C مهيأ مسبقًا، قد يبدو جزء الإعداد هكذا:

struct curl_slist *proxy_headers = NULL;
proxy_headers = curl_slist_append(proxy_headers,
    "Cookie: ProxySession=REPLACE_WITH_PROXY_TOKEN");
curl_easy_setopt(handle, CURLOPT_PROXYHEADER, proxy_headers);
curl_easy_setopt(handle, CURLOPT_HEADEROPT,
                 (long) CURLHEADER_SEPARATE);

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

مع المعالجة المنفصلة للرؤوس، يرسل libcurl قائمة الوكيل في CONNECT وقائمة الوجهة في الطلب داخل النفق المنشأ. بذلك يتلقى الوكيل رمز المورّد دون أن يصبح ذلك الرمز ملف تعريف ارتباط للموقع. هذا الفصل هو الافتراضي بدءًا من libcurl 7.42.1؛ والخيار الصريح يجعل السلوك المقصود مرئيًا.

وعاء ملفات تعريف ارتباط المتصفح آلية أخرى

تمكين محرك ملفات تعريف الارتباط في libcurl أو تعيين ملف تعريف ارتباط للوجهة لا يعيد تلقائيًا إنتاج تدفق تسجيل دخول الوكيل الخاص بالمتصفح. يحدث CONNECT قبل تبادل HTTPS مع الوجهة. حدّد المتطلبات الفعلية للمنتج بدلًا من نسخ ملف تعريف ارتباط ملتقط للموقع في كل طلب.

إذا كان الوكيل يستخدم توثيق وكيل HTTP القياسي، فاستخدم بدلًا من ذلك بيانات اعتماد الوكيل في libcurl وخيارات التوثيق المدعومة. إن 407 مع Proxy-Authenticate بروتوكول مختلف عن صفحة تسجيل دخول HTML تعيد رمز جلسة.

أبقِ الرمز محصورًا في نقطة نهاية الوكيل وعمره المقصود. عند التبديل إلى وسيط آخر، استبدل قائمة الرؤوس كجزء من تغيير الإعداد ذلك. قائمة رؤوس الطلبات العامة مكان سيئ لسر يخص وكيلًا واحدًا فقط.

مقالات ذات صلة