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

מאפייני הבעיה

בעת שימוש בתכונה IIS נפוצות Gateway Interface (CGI) כדי לארח תוכנית הפעלה המשתמשות ספריה מסוימים לשם ניתוב מחדש של בקשות, בקשות עשוי להיות misdirected בהתבסס על הנוכחות של כותרת הבקשה "ה-PROXY". מספר פלטפורמות של יישום אינטרנט מוכרים כדי להשתמש בספריה זו. אלה כוללות PHP, Python ולך, בין היתר.

הגורם

CGI הוא ממשק אשר מאפשרת לשרת האינטרנט המארח יישומים הפועלים כתהליכים הפעלה. כאשר מתקבלת בקשה על-ידי שרת אינטרנט, שרת מתחיל תהליך חדש כדי לטפל בבקשה יחיד זה. לאחר השלמת הבקשה, התהליך ייסגר. בסדר עבור התהליך תהיה גישה לנתונים הבקשה, כותרות בקשה ייכללו משתני סביבה בעלי "HTTP_" נוסף לפני שם שלהם. לכן, תהליכים CGI עבור בקשות המכילות כותרת בשם "ה-Proxy" יש משתנה סביבה "HTTP_PROXY" בעלי ערך זהה לזה של כותרת בקשה.

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

הערה זהו לא קשורה ל- "HTTP_PROXY" כהייצוג של כותרת עליונה בקשת הלקוח.

בעת קיפול מתארח בתוך תהליך CGI, תהליך מכיל משתנה סביבה בשם "HTTP_PROXY", קיפול משתמשת בערך שלו כדי לשלוח את הנתונים המבוקשים באמצעות ה-proxy של HTTP שאת הערך המצוין במשתנה הסביבה. מצב זה מתרחש מכיוון וקיפול מצפה כי "HTTP_PROXY" הוא של הוראת תצורה ולא כותרת בקשת הלקוח.

פתרון הבעיה

כדי לעקוף בעיה זו, אל תשתמש CGI בשרת בו פועל IIS. CGI הוא ממשק מיושן במידה רבה אשר מוחלף על-ידי ממשקים הקשורות לביצועים יותר והישנים. באופן ספציפי, PHP, Python ולך אמור להתארח עד FastCGI ב- IIS. FastCGI לא להשתמש במשתני סביבה עבור כותרות בקשת לקוח, ואין לו בעיה זו. עם זאת עבור PHP, יישומים מסוימים עשויים להשתמש בפונקציה getenv() PHPs כדי לאחזר משתני סביבה. אפילו כאשר PHP ואינו מתארח בתוך תהליך CGI, הוא משכפל את אופן הפעולה של CGI על-ידי החדרת ערכי הכותרת בקשה לתוך הערכה של נתונים זמין לפונקציה getenv() שלו. אם אתה משתמש של יישום PHP מאחזרת HTTP_PROXY באופן זה, הגורמים המקלים הבאים של ניקוי ערך כותרת או דחיית בקשות עם כותרת PROXY יעילים.

אם עליך להשתמש CGI מסיבה כלשהי, לחסום בקשות המכילות כותרת הבקשה בשם "ה-Proxy" או נקה את הערך של הכותרת.  הסיבה לכך היא "ה-Proxy" אינו שם כותרת הבקשה רגיל דפדפנים בדרך כלל לא ישלח אותו.

כדי לחסום בקשה מכילה כותרת ה-Proxy (הפתרון המועדף), הפעל את שורת הפקודה הבאה:

appcmd להגדיר config /section:requestfiltering / + requestlimits.headerLimits. [כותרת = 'proxy,' sizelimit = '0']
הערה Appcmd.exe לא נמצאת בדרך כלל בנתיב ולא ניתן למצוא בספריה %systemroot%\system32\inetsrv

כדי לנקות את הערך של הכותרת, באפשרותך להשתמש בכלל שכתוב URL הבאות:

<system.webServer>    <rewrite>
<rules>
<rule name="Erase HTTP_PROXY" patternSyntax="Wildcard">
<match url="*.*" />
<serverVariables>
<set name="HTTP_PROXY" value="" />
</serverVariables>
<action type="None" />
</rule>
</rules>
</rewrite>
</system.webServer>


הערה כתיבה מחדש של כתובת URL להורדה תוספת של IIS כדי ואין אינה כלולה בהתקנת IIS ברירת מחדל.

זקוק לעזרה נוספת?

מעוניין באפשרויות נוספות?

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

קהילות עוזרות לך לשאול שאלות ולהשיב עליהן, לתת משוב ולשמוע ממומחים בעלי ידע עשיר.

האם מידע זה היה שימושי?

עד כמה אתם מרוצים מאיכות השפה?
מה השפיע על החוויה שלך?
בלחיצה על 'שלח', אתה מאפשר למשוב שלך לשפר מוצרים ושירותים של Microsoft. מנהל ה-IT שלך יוכל לאסוף נתונים אלה. הצהרת הפרטיות.

תודה על המשוב!

×