חלק ממוצרי פרוקסי מגדירים תהליך התחברות המספק קוקייה או אסימון לבקשות פרוקסי עוקבות. אם האסימון הזה חייב להופיע ב-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 שמחזיר אסימון הפעלה.

הגבילו את האסימון לנקודת הקצה של הפרוקסי שלו ולמשך חייו המיועד. במעבר למתווך אחר, החליפו את רשימת הכותרות כחלק משינוי התצורה הזה. רשימת כותרות בקשה כללית היא מקום גרוע לסוד ששייך לפרוקסי אחד בלבד.

מאמרים קשורים