ข้ามไปที่เนื้อหาหลัก
การสนับสนุน
ลงชื่อเข้าใช้
ลงชื่อเข้าใช้ด้วย Microsoft
ลงชื่อเข้าใช้หรือสร้างบัญชี
สวัสดี
เลือกบัญชีอื่น
คุณมีหลายบัญชี
เลือกบัญชีที่คุณต้องการลงชื่อเข้าใช้

สรุป

ความปลอดภัยของ Microsoft อัพเด MS11-100 วงเงินจำนวนสูงสุดของแบบฟอร์มคีย์ แฟ้ม และสมาชิก JSON 1000 ในการร้องขอ HTTP เนื่องจาก มีการเปลี่ยนแปลงนี้ โปรแกรมประยุกต์ ASP.NET ร้องขอปฏิเสธที่มีมากกว่า 1000 ขององค์ประกอบเหล่านี้ ไคลเอ็นต์ของ HTTP ที่ทำให้การร้องขอต่าง ๆ เหล่านี้จะถูกปฏิเสธ และข้อผิดพลาดจะปรากฏขึ้นในเว็บเบราว์เซอร์ ข้อความแสดงข้อผิดพลาดมักจะมีรหัสสถานะ HTTP 500 ข้อผิด คุณสามารถกำหนดค่าขีดจำกัดนี้ใหม่บนพื้นฐานสำหรับแต่ละโปรแกรมประยุกต์ โปรดดูส่วน "การแก้ไข" สำหรับคำแนะนำการตั้งค่าคอนฟิก

อาการ

ร้องขอการ ASP.NET ที่มีแบบฟอร์มคีย์ แฟ้ม หรือส่วนของข้อมูลของ JSON จำนวนมาก ได้รับการตอบสนองข้อผิดพลาดจากเซิร์ฟเวอร์ ล็อกแอพลิเคชันบนเซิร์ฟเวอร์ที่มีรายการคำเตือนกับต้นฉบับที่เป็น ASP.NET รุ่นใดรุ่นหนึ่ง และรหัสเหตุการณ์ 1309 แฟ้มบันทึกเหตุการณ์ประกอบด้วยข้อความต่อไปนี้หนึ่ง:

ข้อความที่ 1:

ข้อมูลแอพลิเคชัน: โดเมนของแอพลิเคชัน: / LM/W3SVC/1/ราก/<โดเมนโปรแกรมประยุกต์ > ระดับความน่าเชื่อถือ: เส้นทางเสมือนของแอพลิเคชันปานกลาง: เส้นทางของแอพลิเคชัน < VDIR พาธ >: ชื่อ <เส้นทางโปรแกรมประยุกต์ > เครื่อง: <ชื่อเครื่อง > การประมวลผลข้อมูล: รหัสกระบวนการ: ชื่อกระบวนการ 0001: ชื่อบัญชี w3wp.exe: ข้อมูลข้อยกเว้น APPPOOL\DefaultAppPool IIS: ชนิดข้อยกเว้น: ข้อความแสดงข้อยกเว้น HttpException: ข้อมูลแบบฟอร์มที่เข้ารหัส URL ไม่ถูกต้อง ใน System.Web.HttpRequest.FillInFormCollection ()ใน System.Web.HttpRequest.get_Form ()ใน System.Web.HttpRequest.get_HasForm ()ใน System.Web.UI.Page.GetCollectionBasedOnMethod (บูลี dontReturnNull) ใน System.Web.UI.Page.DeterminePostBackMode ()ใน System.Web.UI.Page.ProcessRequestMain (บูลีน includeStagesBeforeAsyncPoint, includeStagesAfterAsyncPoint บูลีน)

ข้อความที่ 2:

ข้อมูลแอพลิเคชัน: โดเมนของแอพลิเคชัน: / LM/W3SVC/1/ราก/<โดเมนโปรแกรมประยุกต์ > ระดับความน่าเชื่อถือ: เส้นทางเสมือนของแอพลิเคชันปานกลาง: เส้นทางของแอพลิเคชัน < VDIR พาธ >: ชื่อ <เส้นทางโปรแกรมประยุกต์ > เครื่อง: <ชื่อเครื่อง > การประมวลผลข้อมูล: รหัสกระบวนการ: ชื่อ 0001Process: ชื่อบัญชี w3wp.exe: ข้อมูลข้อยกเว้น APPPOOL\DefaultAppPool IIS: ชนิดข้อยกเว้น: ข้อความข้อยกเว้น InvalidOperationException: การดำเนินการไม่ถูกต้องเนื่องจากสถานะปัจจุบันของออบเจ็กต์ ใน System.Web.HttpRequest.FillInFilesCollection ()ใน System.Web.HttpRequest.get_Files ()ใน FileUpload.Page_Load (ผู้ส่งวัตถุ อี EventArgs) ที่ System.Web.Util.CalliHelper.EventArgFunctionCaller (IntPtr fp, o วัตถุ วัตถุ t, EventArgs e) ที่ System.Web.Util.CalliEventHandlerDelegateProxy.Callback (ผู้ส่งวัตถุ อี EventArgs) ที่ System.Web.UI.Control.OnLoad (EventArgs e) ใน System.Web.UI.Control.LoadRecursive ()ใน System.Web.UI.Page.ProcessRequestMain (บูลีน includeStagesBeforeAsyncPoint

ข้อความที่ 3:

โดเมนข้อมูล: แอพลิเคชันของแอพลิเคชัน: / LM/W3SVC/1/ราก/<โดเมนโปรแกรมประยุกต์ > ระดับความน่าเชื่อถือ: เส้นทางเสมือนของแอพลิเคชันปานกลาง: เส้นทางของแอพลิเคชัน < VDIR เส้นทาง >: ชื่อเครื่อง <เส้นทางโปรแกรมประยุกต์ >: <ชื่อเครื่อง > การประมวลผลข้อมูล: รหัสกระบวนการ: ชื่อ 0001Process: ชื่อบัญชี w3wp.exe: ข้อมูลข้อยกเว้น APPPOOL\DefaultAppPool IIS: ชนิดข้อยกเว้น: ข้อความข้อยกเว้น InvalidOperationException: การดำเนินการไม่ถูกต้องเนื่องจากสถานะปัจจุบันของออบเจ็กต์ ใน System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeDictionary (ความลึก Int32) ที่ System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeInternal (Int32 ลึก) ใน System.Web.Script.Serialization.JavaScriptObjectDeserializer.BasicDeserialize (สตริงที่ป้อน Int32 depthLimit ตัวทำซีเรียลไลซ์ JavaScriptSerializer) ที่ System.Web.Script.Serialization.JavaScriptSerializer.Deserialize (JavaScriptSerializer ตัวทำซีเรียลไลซ์ ป้อนสตริงที่ ชนิดชนิด Int32 depthLimit) ที่ System.Web.Script.Serialization.JavaScriptSerializer.DeserializeObject (สตริงที่ป้อน) ที่ Failing.Page_Load (ผู้ส่งวัตถุ อี EventArgs) ใน System.Web.Util.CalliHelper.EventArgFunctionCaller (IntPtr fp, o วัตถุ วัตถุ t อี EventArgs) ที่ System.Web.Util.CalliEventHandlerDelegateProxy.Callback (ผู้ส่งวัตถุ อี EventArgs) ที่ System.Web.UI.Control.OnLoad (EventArgs e) ที่ System.Web.UI.Control.LoadRecursive ()ใน System.Web.UI.Page.ProcessRequestMain (บูลีน includeStagesBeforeAsyncPoint, includeStagesAfterAsyncPoint บูลีน)

แฟ้มบันทึก IIS แสดงรายการที่คล้ายกับต่อไปนี้:

/Machine/default.aspx 2011-01-01 00:00:00:: 1 ลง - 80 -:: 0 1 500 0 187

สาเหตุ

ความปลอดภัยของ Microsoft ปรับปรุงที่อยู่ MS11-100 บูเลทีนรักษาความปลอดภัยเปลี่ยนจำนวนสูงสุดเริ่มต้นของแบบฟอร์มคีย์ แฟ้ม และสมาชิก JSON ที่ ASP.NET จะยอมรับในการร้องขอให้ 1000 ทำการเปลี่ยนแปลงนี้เพื่อแก้ไขช่องโหว่ที่ปฏิเสธการใช้บริการที่ Microsoft กระดานข่าวความปลอดภัย MS11-100 เอกสาร

การแก้ไข

โปรแกรมประยุกต์ที่ใช้ถึงขีดจำกัดนี้สำหรับแฟ้มหรือคีย์แบบฟอร์มสามารถปรับเปลี่ยนการ ASP.NET appSetting aspnet:MaxHttpCollectionKeysดังที่แสดงไว้ด้านล่างนี้ในแฟ้มการกำหนดค่าของโปรแกรมประยุกต์ ASP.NET การตั้งค่านี้อยู่ส่วนข้อผิดพลาดข้อความ 1 และข้อผิดพลาดข้อความ 2 จาก "อาการ"

<configuration><appSettings><add key="aspnet:MaxHttpCollectionKeys" value="1000" /></appSettings></configuration>

หมายเหตุ ถ้าคุณกำลังใช้ ASP.NET 1.1 บนระบบที่ใช้ x86 การตั้งค่ามีการปรับปรุง โดยการเพิ่มค่า DWORD ในคีย์รีจิสทรีต่อไปนี้:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ASP.NET\1.1.4322.0\MaxHttpCollectionKeys

ถ้าคุณกำลังใช้ ASP.NET 1.1 บนระบบที่ใช้ x64 การตั้งค่ามีการปรับปรุง โดยการเพิ่มค่า DWORD ในคีย์รีจิสทรีต่อไปนี้:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\ASP.NET\1.1.4322.0\MaxHttpCollectionKeys

โปรแกรมประยุกต์ที่เข้าชม JSON payloads ที่จำกัดนี้สามารถปรับเปลี่ยนการ ASP.NET appSetting aspnet:MaxJsonDeserializerMembersดังที่แสดงไว้ด้านล่างนี้ในแฟ้มการกำหนดค่าของโปรแกรมประยุกต์ ASP.NET การตั้งค่านี้อยู่ส่วนข้อความที่ 3 จาก "อาการ" ข้อผิดพลาด

<configuration><appSettings><add key="aspnet:MaxJsonDeserializerMembers" value="1000" /></appSettings></configuration>

หมายเหตุ เพิ่มภูมิไวรับของเซิร์ฟเวอร์ของคุณเพื่อช่องโหว่การโจมตีของการบริการซึ่งอธิบายไว้ในบูเลทีนรักษาความปลอดภัย MS11-100 ค่านี้อยู่เหนือส่วนเพิ่มการตั้งค่าเริ่มต้น

อ้างอิง

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับบูเลทีนรักษาความปลอดภัย MS11-100 ดู TechNet บทความต่อไปนี้:

ความปลอดภัยของ Microsoft นการ MS11-100 - สำคัญหากต้องการทราบข้อมูลเพิ่มเติม โปรดคลิกที่หมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:

2638420 MS11-100: ช่องโหว่ใน.NET Framework อาจอนุญาตให้มีสิทธิ์การใช้งาน: 29 ธันวาคม 2011

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

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

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

ชุมชนช่วยให้คุณถามและตอบคําถาม ให้คําติชม และรับฟังจากผู้เชี่ยวชาญที่มีความรู้มากมาย

ข้อมูลนี้เป็นประโยชน์หรือไม่

คุณพึงพอใจกับคุณภาพภาษาเพียงใด
สิ่งที่ส่งผลต่อประสบการณ์ใช้งานของคุณ
เมื่อกดส่ง คำติชมของคุณจะถูกใช้เพื่อปรับปรุงผลิตภัณฑ์และบริการของ Microsoft ผู้ดูแลระบบ IT ของคุณจะสามารถรวบรวมข้อมูลนี้ได้ นโยบายความเป็นส่วนตัว

ขอบคุณสำหรับคำติชมของคุณ!

×