מתקבלת הודעת שגיאת script מסוג "Type Mismatch" (סוג לא מתאים) של VBScript ב- Internet Explorer לאחר החלת עדכון אבטחה מצטבר 974455.

תרגומי מאמרים תרגומי מאמרים
Article ID: 976949 - View products that this article applies to.
הרחב הכל | כווץ הכל

מבוא

עדכון אבטחה מצטבר 974455 עבור Internet Explorer (המתואר ב- MS09-054) הכניס בדיקות אבטחה נוספות מסוג "Type" בשיטות מסוימות כדי להתייחס לפגיעויות אבטחה ידועות. בתרחישים מסוימים, בדיקות סוג אלה עלולות לגרום לשגיאות script מסוג "Type Mismatch" בדפי אינטרנט המשתמשים ב- VBScript או בדפי אינטרנט המשתמשים בתערובת של VBScript ו- JavaScript.

לקבלת מידע נוסף על MS09-054, לחץ על מספר המאמר שלהלן כדי להציגו מתוך מאגר הידע Microsoft Knowledge Base:
974455 MS09-054: עדכון אבטחה מצטבר עבור Internet Explorer (ייתכן שקישור זה מפנה לתוכן שחלק ממנו או כולו מופיע באנגלית)

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

דפי אינטרנט המשתמשים ב- VBScript כשפת כתיבת script והמשתמשים בשיטה showModalDialog()? או showModelessDialog()? עשויים להיתקל בשגיאת script מסוג "Type Mismatch". Microsoft זיהתה את שלושת התרחישים הבאים שבהם עשויה להיות מוצגת שגיאת script מסוג "Type Mismatch":
  • showModalDialog()?
    בתרחיש הראשון קיים מצב של העברת ערך Array()? כפרמטר לשיטה showModalDialog()? ב- VBScript. השיטה showModalDialog()? תומכת בארגומנט חובה אחד (sURL) ובשני ארגומנטים אופציונליים (vArguments ו- sFeatures). הפרמטר vArguments הוא פרמטר מסוג VARIANT המציין את הארגומנטים לשימוש בעת הצגת המסמך. אם איש הפיתוח צריך להעביר Array()? ישירות לפרמטר האופציונלי vArguments, תתרחש שגיאת script מסוג "Type Mismatch".

    לקבלת מידע נוסף על השיטה showModalDialog בקר בדף האינטרנט הבא של Microsoft MSDN:
    http://msdn.microsoft.com/he-il/library/ms536759(VS.85).aspx
  • showModelessDialog()?
    בתרחיש השני קיים מצב של העברת ערך Array()? כפרמטר לשיטה showModelessDialog()? ב- VBScript. השיטה showModelessDialog()? תומכת בארגומנט חובה אחד (sURL) ובשני ארגומנטים אופציונליים(vArguments ו- sFeatures). הפרמטר vArguments הוא פרמטר מסוג VARIANT המציין את הארגומנטים לשימוש בעת הצגת המסמך. אם איש הפיתוח צריך להעביר Array()? ישירות לפרמטר האופציונלי vArguments, תתרחש שגיאת script מסוג "Type Mismatch".

    לקבלת מידע נוסף על השיטה ModelessDialog בקר בדף האינטרנט הבא של Microsoft MSDN:
    http://msdn.microsoft.com/en-us/library/ms536761(VS.85).aspx/PathLink>
  • returnValue
    בתרחיש השלישי מעורבת הגדרה מפורשת של המאפיין returnValue בחלון דו-שיח מודאלי. המאפיין returnValue הוא מאפיין קריאה/כתיבה שאין לו ערך ברירת מחדל. בהתאם לתיעוד ב- MSDN, המאפיין returnValue חל רק על אותם חלונות שנוצרו עם השיטה showModalDialog()?. אם איש הפיתוח מנסה להגדיר מפורשות את המאפיין returnValue של חלון דו-שיח מודאלי, לערך Array()? ב- VBScript, תתרחש שגיאת script מסוג "Type Mismatch".

    לקבלת מידע נוסף על המאפיין return Value בקר בדף האינטרנט הבא של Microsoft MSDN:
    http://msdn.microsoft.com/he-il/library/ms534371(VS.85).aspx
עד כה, Microsoft לא הייתה עדה לשגיאות script מסוג "Type Mismatch" הנובעות מעדכון אבטחה מצטבר 974455 בדפי אינטרנט המשתמשים ב- JavaScript כשפת כתיבת script היחידה שלהם בצד-הלקוח. נראה כי מושפעים רק דפי אינטרנט המשתמשים בשיטה showModalDialog()?, בשיטה showModelessDialog()?, או במאפיין returnValue בתוך VBScript. אם דף האינטרנט מכיל תערובת הן של VBScript והן שלJavaScript, הוא עשוי להיות מושפע אם דף האינטרנט משתמש בשיטות או במאפיינים שתוארו לעיל בתוך VBScript או אם דף האינטרנט משתמש באובייקט VBArray. שימוש באובייקט VBArray אינו נפוץ, ותרחישים הכרוכים ב- VBArray לא יידונו במאמר Knowledge Base זה.

סיבה

עדכון אבטחה מצטבר עבור Internet Explorer ?MS09-054 שוחרר כדי להתייחס לפגיעויות אבטחה שזוהו ב- Internet Explorer. כחלק מעדכון האבטחה המצטבר, Internet Explorer הכניסה בדיקות חדשות כנגד casting לא מכוון של פרמטרים מסוג VARIANT לסוגי נתונים מסוכנים. בדיקות האבטחה הנוספות מציבות מגבלות אבטחה נוספות על פרמטרים מסוג VARIANT המועברים כחלק מהמשתנים המבוקרים על-ידי המשתמש כדי להגן על המשתמש מפני סוגי התקפה מסוימים. בדיקות נוספות אלו עלולות להשפיע על תרחישי גלישה לגיטימיים המשתמשים בסוגי נתונים VARIANT.

פתרון הבעיה

כדי לפתור בעיה זו, התקן את עדכון 976749 לאחר התקנת עדכון האבטחה 974455. לקבלת מידע נוסף בנושא זה, לחץ על מספר המאמר שלהלן כדי להציגו מתוך מאגר הידע Microsoft Knowledge Base:
976749 זמין עדכון עבור Internet Explorer שפותר בעיות המתרחשות לאחר החלת עדכון אבטחה 974455 (MS09-054)

חשוב אל תתקין את עדכון 976749 אם לא התקנת את עדכון האבטחה 974455. אם תתקין את עדכון האבטחה 976749 בלי להתקין תחילה את עדכון האבטחה 974455, אזי Internet Explorer עשוי שלא לפעול כהלכה. במקרה זה, הסר את התקנת העדכון 976749, התקן את עדכון האבטחה 974455, ולאחר מכן התקן שוב את עדכון 976749.

דרכים לעקיפת הבעיה

מומלץ להמשיך ולהחיל את עדכון האבטחה המצטבר 974455 ולהתקין את עדכון 976749 אם אתה נתקן בתסמינים המתוארים במאמר זה. לקוחות המחליטים להסיר את עדכון האבטחה המצטבר מסכנים את המערכות שלהם.

עבור התרחיש הראשון והתרחיש השני הנדונים בסעיף "מאפייני הבעיה", ניתן להשתמש בפתרון עוקף אם אינך רוצה להתקין את עדכון האבטחה 974455. כדי לעקוף את הבעיה, הצהר מפורשות את המשתנה Array()? בתוך משתנה VBScript. ניתן להעביר מערכים אל השיטות showModalDialog()? או showModelessDialog()? בלי שגיאת script מסוג "Type Mismatch".

לדוגמה, VBScript יגרום לשגיאת script מסוג "Type Mismatch".
?// TYPE MISMATCH
vReturn = window.showModalDialog("http://www.contoso.com", Array(1,2,3,4,5,6,7))?
VBScript הבא יעביר מערך אל השיטות showModialDialog()? או showModelessDialog()? בלי שגיאת script מסוג "Type Mismatch".
?// NO TYPE MISMATCH ERROR
Dim myArray
myArray=Array(1,2,3,4,5,6,7)?
vReturn = window.showModalDialog("http://www.contoso.com", myArray)?
עבור התרחיש השלישי הנדון לעיל, ניתן להשתמש בפתרון עוקף אם אינך רוצה להתקין את עדכון האבטחה 974455. כדי לעקוף את הבעיה בתרחישים שבהם ערך Array()? חד-ממדי מועבר אל המאפיין returnValue, השתמש בפונקציות Join ו- Split של VBScript. כך ניתן להעביר ערכי Array()? אל המאפיין returnValue.

לדוגמה, VBScript יגרום לשגיאת script מסוג "Type Mismatch".

?// TYPE MISMATCH
Dim arrayItems
arrayItems(0) = 1
arrayItems(1) = 2
arrayItems(2) = 3
Window.returnvalue = arrayItems
כאשר משתמשים בפונקציות Join ו- Split של VBScript, ניתן להגדיר את המאפיין returnValue בלי לגרום לשגיאת script מסוג "Type Mismatch".

?// 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, ";")?

עבור התרחיש השלישי שנתון לעיל, היכן שערכי Array()? רב-ממדיים או ערכי Array()? בעלי אובייקטים מועברים אל המאפיין returnValue, ניתן לממש פתרון עוקף אם אינך רוצה להתקין את עדכון האבטחה 974455. כדי לעקוף את הבעיה בתרחיש זה, ניתן להשתמש בפונקצית JavaScript להגדרת המאפיין returnValue. פונקצית JavaScript זו זמינה עבור שגרות-משנה ופונקציות של VBScript. כל ערך של מאפיין returnValue המוגדר על-ידי פונקציה של JavaScript תהיה זמינה ל- VBScript.

לדוגמה, VBScript יגרום לשגיאת script מסוג "Type Mismatch".
?// TYPE MISMATCH
<script LANGUAGE=vbscript>
Option Explicit
Sub Window_OnLoad
Dim abc(1,2,3)?
Window.ReturnValue = abc
End Sub
</script>
השימוש בפונקצית JavaScript בשילוב עם VBScript קיים מאפשר להגדיר את המאפיין returnValue בלי לגרום לשגיאת script מסוג "Type Mismatch".
?// 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 ששמותיהם מופיעים בסעיף 'חל על'.

מאפיינים

Article ID: 976949 - Last Review: יום שלישי 01 דצמבר 2009 - Revision: 3.1
המידע במאמר זה חל על:
  • 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
    • 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 (32-bit x86)
    • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
    • Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
    • 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
    • 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 (32-bit x86)
    • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
    • Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
    • 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
    • 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 (32-bit x86)
    • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
    • Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
    • 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 SP1, הפועל עם:
    • Microsoft Windows 2000 Advanced Server
    • Microsoft Windows 2000 Datacenter Server
    • Microsoft Windows 2000 Professional Edition
    • Microsoft Windows 2000 Server
  • Microsoft Internet Explorer 5.01 Service Pack 4, הפועל עם:
    • Microsoft Windows 2000 Advanced Server
    • Microsoft Windows 2000 Datacenter Server
    • Microsoft Windows 2000 Professional Edition
    • Microsoft Windows 2000 Server
מילות מפתח 
kbcode kbtshoot kbbug kbexpertiseinter kbsecurity kbsecvulnerability kbsurveynew KB976949

ספק משוב

 

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