คุณได้รับข้อความแสดง VBScript เป็น "ชนิดไม่ตรงกัน" ข้อความข้อผิดพลาดของสคริปต์ใน Internet Explorer หลังจากที่คุณติดตั้งการปรับปรุงการรักษาความปลอดภัย 974455

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 976949 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
ขยายทั้งหมด | ยุบทั้งหมด

บทนำ

ปรับปรุงการรักษาความปลอดภัยสำหรับ Internet Explorer 974455 (อธิบายไว้ในms09 054) นำเพิ่มเติม "ชนิด" ปลอดภัยเช็คเป็นวิธีการต่าง ๆ ที่อยู่ที่ด้านความปลอดภัยที่ระบุ ภายใต้สถานการณ์บาง ตรวจสอบความปลอดภัยชนิดเหล่านี้ใหม่อาจส่งผลในข้อผิดพลาดข้อสคริปต์ "ชนิดไม่ตรงกัน" ในเว็บเพจที่ใช้ VBScript หรือเว็บเพจที่ใช้ mixture แบบ VBScript และ JavaScript

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ MS09-054 คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
974455MS09-054: การปรับปรุงการรักษาความปลอดภัยที่สะสมสำหรับ Internet Explorer

อาการ

เว็บเพจต่าง ๆ ที่ใช้ VBScript เป็นภาษาการเขียนสคริปต์ฝั่งไคลเอ็นต์ และที่ใช้ใน showModalDialog() หรือวิธี showModelessDialog() อาจพบข้อผิดพลาดทาง "ชนิดไม่ตรงกัน" สคริปต์ Microsoft ได้ระบุสามสถานการณ์ต่อไปนี้ที่เกิดข้อผิดพลาดสคริปต์ "ชนิดไม่ตรงกัน" ได้ถูกสร้างขึ้น:
  • showModalDialog()
    สถานการณ์สมมติแรกเกี่ยวข้องกับการส่งผ่านค่า Array() ซึ่งเป็นพารามิเตอร์วิธี showModalDialog() ใน VBScript วิธีการ showModalDialog() สนับสนุนหนึ่งอาร์กิวเมนต์ที่จำเป็น (sURL) และสองตัวเลือกอาร์กิวเมนต์ (vArguments และ sFeatures) กระบวนการvArgumentsพารามิเตอร์มีพารามิเตอร์ของชนิดตัวแปรที่ระบุอาร์กิวเมนต์จะใช้เมื่อมีการแสดงเอกสาร ถ้ามีการให้นักพัฒนาตัดสินใจที่จะผ่าน Array() ข้อโดยตรงไปที่เลือกกำหนดได้vArgumentsพารามิเตอร์ เกิดข้อผิดพลาดสคริปต์ "ชนิดไม่ตรงกัน" จะเกิดขึ้น

    สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการ showModalDialog แวะไปที่หน้าเว็บของ MSDN Microsoft ต่อไปนี้:
    .aspx http://msdn.microsoft.com/en-us/library/ms536759 (VS.85)
  • showModelessDialog()
    สถานการณ์สมมติที่สองเกี่ยวข้องกับการส่งผ่านค่า Array() ซึ่งเป็นพารามิเตอร์วิธี showModelessDialog() ใน VBScript วิธีการ showModelessDialog() สนับสนุนหนึ่งอาร์กิวเมนต์ที่จำเป็น (sURL) และสองตัวเลือกอาร์กิวเมนต์ (vArguments และ sFeatures) กระบวนการvArgumentsพารามิเตอร์มีพารามิเตอร์ของชนิดตัวแปรที่ระบุอาร์กิวเมนต์จะใช้เมื่อมีการแสดงเอกสาร ถ้ามีการให้นักพัฒนาตัดสินใจที่จะผ่าน Array() ข้อโดยตรงไปที่เลือกกำหนดได้vArgumentsพารามิเตอร์ เกิดข้อผิดพลาดสคริปต์ "ชนิดไม่ตรงกัน" จะเกิดขึ้น

    สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการ showModelessDialog แวะไปที่หน้าเว็บของ MSDN Microsoft ต่อไปนี้:
    http://msdn.microsoft.com/en-us/library/ms536761 (VS.85) .aspx/PathLink >
  • returnValue
    การตั้งค่าของอย่างชัดเจนที่เกี่ยวข้องกับสถานการณ์ที่สามreturnValueคุณสมบัติของหน้าต่างกล่องโต้ตอบ Modal กระบวนการreturnValueคุณสมบัติเป็นแบบอ่าน/เขียนคุณสมบัติที่ไม่มีค่าเริ่มต้น ตามที่เอกสารประกอบของ MSDN,returnValueคุณสมบัติที่ใช้เฉพาะกับหน้าต่างที่สร้างขึ้น ด้วยวิธี showModalDialog() ถ้ามีการให้นักพัฒนาตัดสินใจที่จะได้มีการตั้งค่านี้returnValueคุณสมบัติของหน้าต่างที่ใช้ในการโต้ตอบ Modal มีค่า Array() ใน VBScript เกิดข้อผิดพลาดสคริปต์ "ชนิดไม่ตรงกัน" จะเกิดขึ้น

    สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการส่งกลับค่าคุณสมบัติ แวะไปหน้าเว็บของ MSDN Microsoft ต่อไปนี้:
    .aspx http://msdn.microsoft.com/en-us/library/ms534371 (VS.85)
ตรวจในปัจจุบัน Microsoft ได้ไม่สอบข้อผิดพลาด "ชนิดไม่ตรงกัน" สคริปต์ข้อเกิดขึ้นจากการรักษาความปลอดภัยการปรับปรุง 974455 ในเว็บเพจที่ใช้ JavaScript เป็นของตน sole ฝั่งไคลเอ็นต์ภาษาสคริปต์ เว็บเพเท่านั้นที่สามารถใช้วิธีการ showModalDialog() วิธี showModelessDialog() หรือreturnValueคุณสมบัติภายใน VBScript ราวเพื่อที่ได้รับผลกระทบ ถ้าเว็บเพจที่ประกอบด้วยแบบ mixture VBScript และ JavaScript มันอาจได้รับผลกระทบ ถ้าเว็บเพจที่ใช้วิธีหรือคุณสมบัติที่ได้กล่าวถึงก่อนหน้าภายใน VBScript หรือ ถ้าเว็บเพจที่ใช้วัตถุ VBArray การใช้วัตถุ VBArray คือ uncommon และสถานการณ์ต่าง ๆ ที่เกี่ยวข้องกับ VBArray จะไม่สามารถครอบคลุมบทความฐานความรู้นี้ได้

สาเหตุ

อัพเดทการรักษาความปลอดภัยเพิ่มเติมสำหรับ Internet Explorerms09 054ปล่อยให้ช่องโหว่การรักษาความปลอดภัยที่อยู่ที่ระบุใน Internet Explorer เป็นส่วนหนึ่งของการปรับปรุงการรักษาความปลอดภัย Internet Explorer นำมาใช้ใหม่เช็คกับ casting เกินพารามิเตอร์ชนิดตัวแปรไว้ในชนิดข้อมูลที่เป็นอันตราย ตรวจสอบการรักษาความปลอดภัยเพิ่มเติม impose restraints การรักษาความปลอดภัยเพิ่มเติมในพารามิเตอร์ชนิดตัวแปรที่จะมีการผ่านเป็นส่วนหนึ่งของตัวแปรที่มีควบคุมผู้ใช้เพื่อป้องกันผู้ใช้บางชนิดของการโจมตี ตรวจสอบเพิ่มเติมเหล่านี้อาจมีผลกับสถานการณ์การเรียกถูกต้องตามกฎหมายที่ใช้ชนิดข้อมูลของตัวแปร

การแก้ไข

เมื่อต้องการแก้ไขปัญหานี้ ติดตั้งการปรับปรุง 976749 หลังจากที่คุณติดตั้งการปรับปรุงการรักษาความปลอดภัย 974455สำหรับข้อมูลเพิ่มเติมเกี่ยวกับปัญหานี้ โปรดคลิกที่หมายเลขบทความต่อไปนี้เพื่อดูบทความใน Microsoft Knowledge Base::
976749การปรับปรุงมีพร้อมใช้งานสำหรับ Internet Explorer ที่ช่วยแก้ปัญหาที่เกิดขึ้นหลังจากที่คุณใช้การปรับปรุงการรักษาความปลอดภัย 974455 (MS09-054)

สิ่งสำคัญอย่าติดตั้งการปรับปรุง 976749 หากคุณไม่ได้ติดตั้งการปรับปรุงการรักษาความปลอดภัย 974455 หากคุณติดตั้งการปรับปรุง 976749 โดยไม่ต้องการทการรักษาความปลอดภัยที่ติดตั้งแรก 974455, Internet Explorer อาจทำงานได้ไม่ถูกต้อง ในกรณีนี้ ถอนการติดตั้งการปรับปรุง 976749 ติดตั้งการปรับปรุงการรักษาความปลอดภัย 974455 แล้ว ติดตั้งการปรับปรุง 976749

การหลีกเลี่ยงปัญหา

เราขอแนะนำว่า คุณยังคงใช้การปรับปรุงการรักษาความปลอดภัย 974455 และให้ คุณติดตั้งการปรับปรุง 976749 หากคุณพบอาการที่อธิบายไว้ในบทความนี้ ลูกค้าที่ต้องการเอาการปรับปรุงการรักษาความปลอดภัยจะทำให้ระบบความเสี่ยง

For the first and second scenarios that are discussed in the "Symptoms" section, you can implement a workaround if you do not want to install security update 974455. To work around the issue, explicitly declare the Array() variable into a VBScript variable. Arrays can be passed to the showModalDialog() or the showModelessDialog() methods without a "Type Mismatch" script error.

For example, the following VBScript will cause a "Type Mismatch" script error.
// TYPE MISMATCH
vReturn = window.showModalDialog("http://www.contoso.com", Array(1,2,3,4,5,6,7))
The following VBScript will pass an array to the showModialDialog() or showModelessDialog() methods without a "Type Mismatch" script error.
// NO TYPE MISMATCH ERROR
Dim myArray
myArray=Array(1,2,3,4,5,6,7)
vReturn = window.showModalDialog("http://www.contoso.com", myArray)
For the third scenario that was discussed earlier, you can implement a workaround if you do not want to install security update 974455. To work around the issue in scenarios where a single dimension Array() value is passed to thereturnValueproperty, use the Join and Split VBScript functions. This lets you pass Array() values to thereturnValueคุณสมบัติ

For example, the following VBScript generates a "Type Mismatch" script error.

// TYPE MISMATCH
Dim arrayItems
arrayItems(0) = 1
arrayItems(1) = 2
arrayItems(2) = 3
Window.returnvalue = arrayItems
When you use the Join and Split VBScript functions, you can set thereturnValueproperty without generating a "Type Mismatch" script error.

// NO TYPE MISMATCH ERROR
Dim arrayItems
arrayItems(0) = 1
arrayItems(1) = 2
arrayItems(2) = 3

Dim arrString = Join(arrayItems, ";")
Window.returnvalue = arrString
Dim strTemp = window.showModalDialog(……)
Dim arrayItems = Split(strTemp, ";")

For the third scenario that was discussed earlier, where multidimensional Array() values or Array() values that have objects are passed to thereturnValueproperty, you can implement a workaround if you do not want to install security update 974455. To work around the issue in this scenario, you can use a JavaScript function to set thereturnValueคุณสมบัติ This JavaScript function is available to VBScript subroutines and functions. ใด ๆreturnValueproperty value that is set by a JavaScript function will be available to VBScript.

For example, the following VBScript generates a "Type Mismatch" script error.
// TYPE MISMATCH
<script LANGUAGE=vbscript>
Option Explicit
Sub Window_OnLoad
Dim abc(1,2,3)
Window.ReturnValue = abc
End Sub
</script>
Using a JavaScript function together with an existing VBScript lets you set thereturnValueproperty without generating a "Type Mismatch" script error.
// NO TYPE MISMATCH ERROR
<script Language=JavaScript>
function setReturnValue(){
var returnValueArray= new Array();
returnValueArray[0] = 1;
returnValueArray[1] = 2;
returnValueArray[2] = 3;
window.returnValue = returnValueArray;
}
</script>

<script LANGUAGE=vbscript??
Option Explicit

Sub Window_OnLoad
setReturnValue()
msgbox window.returnValue
End Sub
</script>

สถานะ

Microsoft ยืนยันว่าปัญหานี้เป็นปัญหาที่เกิดขึ้นกับผลิตภัณฑ์ของ Microsoft ซึ่งมีการระบุไว้ในส่วน "การใช้งาน"
Note This is a "FAST PUBLISH" article created directly from within the Microsoft support organization. The information contained herein is provided as-is in response to emerging issues. As a result of the speed in making it available, the materials may include typographical errors and may be revised at any time without notice. See Terms of Use for other considerations.

คุณสมบัติ

หมายเลขบทความ (Article ID): 976949 - รีวิวครั้งสุดท้าย: 16 มกราคม 2554 - Revision: 2.0
ใช้กับ
  • Windows Internet Explorer 8 เมื่อใช้กับ:
    • Windows Server 2008 Datacenter without Hyper-V
    • Windows Server 2008 Enterprise without Hyper-V
    • Windows Server 2008 for Itanium-Based Systems
    • Windows Server 2008 Standard without Hyper-V
    • Windows Server 2008 Datacenter
    • Windows Server 2008 Enterprise
    • Windows Server 2008 Standard
    • Windows Web Server 2008
    • Windows Server 2008 R2 Datacenter
    • Windows Server 2008 R2 Enterprise
    • Windows Server 2008 R2 Standard
    • Windows Web Server 2008 R2
    • Windows 7 Enterprise
    • Windows 7 Home Basic
    • Windows 7 Home Premium
    • Windows 7 Professional
    • Windows 7 Ultimate
    • Windows Vista Business
    • Windows Vista Enterprise
    • Windows Vista Home Basic
    • Windows Vista Home Premium
    • Windows Vista Ultimate
    • Windows Vista Enterprise 64-bit edition
    • Windows Vista Home Basic 64-bit edition
    • Windows Vista Home Premium 64-bit edition
    • Windows Vista Ultimate 64-bit edition
    • Windows Vista Business 64-bit edition
    • Microsoft Windows XP Professional Edition
    • Microsoft Windows XP Home Edition
    • Microsoft Windows XP Professional x64 Edition
    • Microsoft Windows Server 2003, Datacenter x64 Edition
    • Microsoft Windows Server 2003, Enterprise x64 Edition
    • Microsoft Windows Server 2003, Standard x64 Edition
    • Microsoft Windows Server 2003 Web Edition
    • Microsoft Windows Server 2003 Standard Edition
    • Microsoft Windows Server 2003 Enterprise Edition
    • Microsoft Windows Server 2003 Datacenter Edition
    • Microsoft Windows Server 2003, Datacenter Edition for Itanium-Based Systems
    • Microsoft Windows Server 2003, Enterprise Edition for Itanium-based Systems
  • Windows Internet Explorer 7 เมื่อใช้กับ:
    • Windows Server 2008 Datacenter without Hyper-V
    • Windows Server 2008 Enterprise without Hyper-V
    • Windows Server 2008 for Itanium-Based Systems
    • Windows Server 2008 Standard without Hyper-V
    • Windows Server 2008 Datacenter
    • Windows Server 2008 Enterprise
    • Windows Server 2008 Standard
    • Windows Web Server 2008
    • Windows Server 2008 R2 Datacenter
    • Windows Server 2008 R2 Enterprise
    • Windows Server 2008 R2 Standard
    • Windows Web Server 2008 R2
    • Windows 7 Enterprise
    • Windows 7 Home Basic
    • Windows 7 Home Premium
    • Windows 7 Professional
    • Windows 7 Ultimate
    • Windows Vista Business
    • Windows Vista Enterprise
    • Windows Vista Home Basic
    • Windows Vista Home Premium
    • Windows Vista Ultimate
    • Windows Vista Enterprise 64-bit edition
    • Windows Vista Home Basic 64-bit edition
    • Windows Vista Home Premium 64-bit edition
    • Windows Vista Ultimate 64-bit edition
    • Windows Vista Business 64-bit edition
    • Microsoft Windows XP Professional Edition
    • Microsoft Windows XP Home Edition
    • Microsoft Windows XP Professional x64 Edition
    • Microsoft Windows Server 2003, Datacenter x64 Edition
    • Microsoft Windows Server 2003, Enterprise x64 Edition
    • Microsoft Windows Server 2003, Standard x64 Edition
    • Microsoft Windows Server 2003 Web Edition
    • Microsoft Windows Server 2003 Standard Edition
    • Microsoft Windows Server 2003 Enterprise Edition
    • Microsoft Windows Server 2003 Datacenter Edition
    • Microsoft Windows Server 2003, Datacenter Edition for Itanium-Based Systems
    • Microsoft Windows Server 2003, Enterprise Edition for Itanium-based Systems
  • Microsoft Internet Explorer 6.0 เมื่อใช้กับ:
    • Microsoft Windows XP Professional Edition
    • Microsoft Windows XP Home Edition
    • Microsoft Windows XP Professional x64 Edition
    • Microsoft Windows Server 2003, Datacenter x64 Edition
    • Microsoft Windows Server 2003, Enterprise x64 Edition
    • Microsoft Windows Server 2003, Standard x64 Edition
    • Microsoft Windows Server 2003 Web Edition
    • Microsoft Windows Server 2003 Standard Edition
    • Microsoft Windows Server 2003 Enterprise Edition
    • Microsoft Windows Server 2003 Datacenter Edition
    • Microsoft Windows Server 2003, Datacenter Edition for Itanium-Based Systems
    • Microsoft Windows Server 2003, Enterprise Edition for Itanium-based Systems
  • Microsoft Internet Explorer 5.01 Service Pack 4 เมื่อใช้กับ:
    • Microsoft Windows 2000 Advanced Server
    • Microsoft Windows 2000 Professional Edition
    • Microsoft Windows 2000 Server
Keywords: 
kbcode kbtshoot kbbug kbexpertiseinter kbsecurity kbsecvulnerability kbsurveynew kbmt KB976949 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:976949

ให้ข้อเสนอแนะ

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com