นำไปใช้กับ
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 ทั่วไปเกตเวย์อินเทอร์เฟซ (CGI) เมื่อต้องการโฮสต์โปรแกรมที่ใช้ในไลบรารีบางการร้องขอการเปลี่ยนเส้นทาง คำขออาจจะ misdirected ขึ้นอยู่กับการมีอยู่ของส่วนหัวที่ร้องขอ "พร็อกซี" แพลตฟอร์มแอพลิเคชันเว็บหลายทราบว่าการใช้ไลบรารีนี้ ซึ่งรวมถึง PHP, Python และ Go ระหว่างผู้อื่น

สาเหตุ

CGI คือ อินเทอร์เฟซที่ช่วยให้เว็บเซิร์ฟเวอร์เป็นโปรแกรมประยุกต์ที่เรียกใช้เป็นกระบวนการที่เรียกใช้งานได้ เมื่อได้รับคำขอ โดยเว็บเซิร์ฟเวอร์ เซิร์ฟเวอร์เริ่มต้นกระบวนการใหม่เพื่อจัดการการร้องขอที่หนึ่ง เมื่อคำขอเสร็จสมบูรณ์แล้ว ออกจากกระบวนการ ในใบสั่งสำหรับกระบวนการของการเข้าถึงข้อมูลร้องขอ ส่วนหัวของคำขอถูกรวมไว้เป็นตัวแปรสภาพแวดล้อมที่มี "HTTP_" สัมบูรณ์ไปที่ชื่อของพวกเขา ดังนั้น กระบวนการสำหรับการร้องขอที่ประกอบด้วยส่วนหัวที่มีชื่อว่า "พร็อกซี" CGI มีตัวแปรสภาพแวดล้อม "HTTP_PROXY" ที่มีค่าเดียวกันกับหัวข้อที่ร้องขอบรรทัดคำสั่งม้วนและไลบรารีโดยปกติจะใช้เพื่อเปิดใช้งานชนิดต่าง ๆ ของโปรแกรมประยุกต์เพื่อทำให้การร้องขอไปยังเซิร์ฟเวอร์ เว็บเซิร์ฟเวอร์รวมถึงชนิดต่าง ๆ คุณสามารถกำหนดค่าไลบรารีนี้ได้ โดยใช้พารามิเตอร์บรรทัดคำสั่ง หรือจะสามารถอ่านพารามิเตอร์การกำหนดค่าจากตัวแปรสภาพแวดล้อมกระบวนการโฮสต์ "HTTP_PROXY" เป็นหนึ่งในพารามิเตอร์การตั้งค่าคอนฟิกจำนวนมากที่ใช้ โดยม้วนกระดาษ ม้วนกระดาษใช้ "HTTP_PROXY" เมื่อต้องการส่งการร้องขอ HTTP ผ่านทางพร็อกซีกำหนดค่าไว้หมายเหตุ  ซึ่งไม่เกี่ยวข้องกับ "HTTP_PROXY" จะเป็นการนำเสนอของส่วนหัวของคำขอไคลเอนต์เมื่อม้วนถูกโฮสต์ภายในกระบวนการ CGI และ ที่กระบวนประกอบด้วยตัวแปรสภาพแวดล้อมที่มีชื่อว่า "HTTP_PROXY" ม้วนกระดาษใช้ค่าของการส่งข้อมูลผ่านทางพร็อกซี HTTP ซึ่งมีค่าที่ระบุไว้ในตัวแปรของสภาพแวดล้อมที่ร้องขอ เหตุการณ์นี้เกิดขึ้นเนื่องจากม้วนคาดหวังว่า "HTTP_PROXY" เป็นคำสั่งการตั้งค่าคอนฟิกและไม่มีไคลเอนต์ร้องขอหัวข้อ

วิธีแก้ปัญหา

เมื่อต้องการหลีกเลี่ยงปัญหานี้ ห้ามใช้ CGI บนเซิร์ฟเวอร์ที่กำลังเรียกใช้ IIS CGI คือ อินเทอร์เฟซที่ล้าสมัยเป็นส่วนใหญ่ที่ถูกแทนที่ ด้วยอินเทอร์เฟซใหม่ และเพิ่มประสิทธิภาพการทำงานที่เกี่ยวข้อง โดยเฉพาะอย่างยิ่ง PHP, Python และโกควรถูกโฮสต์ผ่าน FastCGI ใน IIS FastCGI ใช้ตัวแปรสภาพแวดล้อมสำหรับหัวข้อการร้องขอของไคลเอ็นต์ และไม่มีการตัดสินค้าจากคลังนี้ อย่างไรก็ตาม สำหรับ PHP โปรแกรมประยุกต์บางโปรแกรมอาจใช้ฟังก์ชันgetenv() PHPs เพื่อเรียกตัวแปรสภาพแวดล้อม ได้แม้กระทั่งเมื่อ PHP ไม่ได้โฮสต์ภายในกระบวนการ CGI เหมือนกับลักษณะการทำงานของ CGI โดย injecting ค่าส่วนหัวของคำขอลงในชุดของข้อมูลที่พร้อมใช้งานสำหรับฟังก์ชันของgetenv() ถ้าคุณใช้โปรแกรมประยุกต์แบบ PHP ที่เรียก HTTP_PROXY ในลักษณะนี้ mitigations ที่ต่อไปนี้ของการล้างค่าของส่วนหัว หรือปฏิเสธการร้องขอ มีส่วนหัวของพร็อกซีจะมีผลบังคับใช้ถ้าคุณจำเป็นต้องใช้ CGI เหตุผลบางประการ บล็อกการร้องขอที่ประกอบด้วยชื่อว่า "พร็อกซี" หัวข้อคำขอ หรือยกเลิกเลือกค่าของส่วนหัว  เป็นเช่นนี้ เพราะ "พร็อกซี" ไม่ใช่ชื่อส่วนหัวของคำขอมาตรฐาน และเบราว์เซอร์จะโดยทั่วไปจะไม่ส่งเมื่อต้องการบล็อกการร้องขอที่ประกอบด้วยส่วนหัวของพร็อกซี (โซลูชันที่ต้องการ), เรียกใช้บรรทัดคำสั่งต่อไปนี้:

/section:requestfiltering การกำหนดค่าการตั้งค่า appcmd / + requestlimits.headerLimits [หัวข้อ 'พร็อกซี' 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 เริ่มต้น

ต้องการความช่วยเหลือเพิ่มเติมหรือไม่

ต้องการตัวเลือกเพิ่มเติมหรือไม่

สํารวจสิทธิประโยชน์ของการสมัครใช้งาน เรียกดูหลักสูตรการฝึกอบรม เรียนรู้วิธีการรักษาความปลอดภัยอุปกรณ์ของคุณ และอื่นๆ