חל על
Windows 10 Windows 10, version 1511, all editions Windows Server 2012 R2 Datacenter Windows Server 2012 R2 Standard Windows Server 2012 R2 Essentials Windows Server 2012 R2 Foundation Windows 8.1 Enterprise Windows 8.1 Pro Windows 8.1 Windows RT 8.1 Windows Server 2012 Datacenter Windows Server 2012 Datacenter Windows Server 2012 Standard Windows Server 2012 Standard Windows Server 2012 Essentials Windows Server 2012 Foundation Windows Server 2012 Foundation Windows Server 2008 R2 Service Pack 1 Windows Server 2008 R2 Datacenter Windows Server 2008 R2 Enterprise Windows Server 2008 R2 Standard Windows Server 2008 R2 Web Edition Windows Server 2008 R2 Foundation Windows 7 Service Pack 1 Windows 7 Ultimate Windows 7 Enterprise Windows 7 Professional Windows 7 Home Premium Windows 7 Home Basic Windows 7 Starter Windows Server 2008 Service Pack 2 Windows Server 2008 Datacenter Windows Server 2008 Enterprise Windows Server 2008 Standard Windows Server 2008 Web Edition Windows Server 2008 Foundation Windows Server 2008 for Itanium-Based Systems Windows Vista Service Pack 2 Windows Vista Ultimate Windows Vista Enterprise Windows Vista Business Windows Vista Home Premium Windows Vista Home Basic Windows Vista Starter

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

בעת שימוש בתכונה 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 ברירת מחדל.

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

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

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