누적 보안 업데이트 974455를 설치한 후에 Internet Explorer에서 VBScript "유형 불일치" 오류가 발생함

기술 자료 번역 기술 자료 번역
기술 자료: 976949 - 이 문서가 적용되는 제품 보기.
모두 확대 | 모두 축소

소개

Internet Explorer용 누적 보안 업데이트 974455(MS09-054에 설명)는 식별된 보안 취약성을 해결하기 위한 다양한 방법에 "유형" 안전 검사를 추가적으로 도입했습니다. 특정 상황에서 이러한 새로운 유형 안전 검사를 수행하면 VBScript를 사용하는 웹 페이지 또는 VBScript와 JavaScript를 함께 사용하는 웹 페이지에서 "유형 불일치" 스크립트 오류가 발생할 수 있습니다.

MS09-054에 대한 자세한 내용은 다음 문서 번호를 클릭하여 Microsoft 기술 자료 문서를 참조하십시오.
974455 MS09-054: Internet Explorer 누적 보안 업데이트

현상

클라이언트 쪽 스크립팅 언어로 VBScript를 사용하고 showModalDialog() 또는 showModelessDialog() 메서드를 사용하는 웹 페이지에서 "유형 불일치" 스크립트 오류가 발생할 수 있습니다. Microsoft는 "유형 불일치" 스크립트 오류가 발생할 수 있는 다음과 같은 세 가지 시나리오를 파악했습니다.
  • showModalDialog()
    첫 번째 시나리오는 VBScript에서 Array() 값을 showModalDialog() 메서드에 대한 매개 변수로 제공하는 것과 관련이 있습니다. showModalDialog() 메서드는 하나의 필수 인수(sURL)와 두 개의 선택적 인수(vArguments 및 sFeatures)를 지원합니다. vArguments 매개 변수는 문서를 표시할 때 사용할 인수를 지정하는 VARIANT 유형 매개 변수입니다. 개발자가 선택적 vArguments 매개 변수에 직접 Array()를 전달하기로 결정한 경우 "유형 불일치" 스크립트 오류가 발생합니다.

    showModalDialog 메서드에 대한 자세한 내용은 다음 Microsoft MSDN 웹 페이지를 참조하십시오.
    http://msdn.microsoft.com/ko-kr/library/ms536759(VS.85).aspx
  • showModelessDialog()
    두 번째 시나리오는 VBScript에서 Array() 값을 showModelessDialog() 메서드에 대한 매개 변수로 제공하는 것과 관련이 있습니다. showModelessDialog() 메서드는 하나의 필수 인수(sURL)와 두 개의 선택적 인수(vArguments 및 sFeatures)를 지원합니다. vArguments 매개 변수는 문서를 표시할 때 사용할 인수를 지정하는 VARIANT 유형 매개 변수입니다. 개발자가 선택적 vArguments 매개 변수에 직접 Array()를 전달하기로 결정한 경우 "유형 불일치" 스크립트 오류가 발생합니다.

    showModelessDialog() 메서드에 대한 자세한 내용은 다음 Microsoft MSDN 웹 페이지를 참조하십시오.
    http://msdn.microsoft.com/en-us/library/ms536761(VS.85).aspx/PathLink>
  • returnValue
    세 번째 시나리오는 모달 대화 상자 창의 returnValue 속성에 대한 명시적 설정과 관련이 있습니다. returnValue 속성은 기본값이 없는 읽기/쓰기 속성입니다. MSDN의 문서에 따르면 returnValue 속성은 showModalDialog() 메서드로 만든 창에만 적용됩니다. 개발자가 VBScript에서 모달 대화 상자 창의 returnValue 속성을 Array() 값으로 명시적으로 설정하기로 결정하면 "유형 불일치" 스크립트 오류가 발생합니다.

    return Value 속성에 대한 자세한 내용은 다음 Microsoft MSDN 웹 페이지를 참조하십시오.
    http://msdn.microsoft.com/ko-kr/library/ms534371(VS.85).aspx
현재 Microsoft는 JavaScript를 유일한 클라이언트 쪽 스크립팅 언어로 사용하는 웹 페이지에서 누적 보안 업데이트 974455로 인해 발생하는 "유형 불일치" 스크립트 오류를 확인하지 못했습니다. VBScript 내에서 showModalDialog() 메서드, showModelessDialog() 메서드 또는 returnValue 속성을 사용하는 웹 페이지만 영향을 받는 것으로 확인되었습니다. 웹 페이지에 VBScript 및 JavaScript가 모두 포함되어 있는 경우 웹 페이지의 VBScript 내에서 앞서 설명한 메서드나 속성이 사용되거나 웹 페이지에서 VBArray 개체가 사용되는 경우에는 영향을 받을 수 있습니다. VBArray 개체를 사용하는 것은 특별한 경우이며 VBArray와 관련된 시나리오는 이 기술 자료 문서에서 논의되지 않습니다.

원인

Internet Explorer용 누적 보안 업데이트 MS09-054는 Internet Explorer의 식별된 보안 취약성을 해결하기 위해 출시되었습니다. 누적 보안 업데이트의 일부로, Internet Explorer는 예기치 않게 VARIANT 유형 매개 변수를 위험한 데이터 유형으로 캐스팅하는 상황에 대한 새로운 검사를 도입했습니다. 이러한 추가 보안 검사는 사용자가 특정 오류의 공격으로부터 보호하기 위해 사용자 제어 변수의 일부로 제공되는 VARIANT 유형 매개 변수를 추가적인 제약합니다. 또한 이러한 추가 검사는 VARIANT 데이터 유형을 사용하는 적절한 탐색 시나리오에 영향을 미칠 수 있습니다.

해결 방법

이 문제를 해결하려면 보안 업데이트 974455를 설치한 후에 업데이트 976749를 설치하십시오. 이 문제에 대한 자세한 내용은 다음 문서 번호를 클릭하여 Microsoft 기술 자료 문서를 참조하십시오.
976749 보안 업데이트 974455(MS09-054)를 적용한 후에 발생하는 문제를 해결하는 Internet Explorer용 업데이트를 사용할 수 있음

중요 보안 업데이트 974455를 설치하지 않은 경우 이 업데이트를 설치하지 마십시오. 보안 업데이트 974455를 먼저 설치하지 않고 이 업데이트를 설치하면 Internet Explorer가 제대로 작동하지 않을 수 있습니다. 이 경우 이 업데이트를 제거하고 보안 업데이트 974455를 설치한 후에 이 업데이트를 다시 설치하십시오.

해결 과정

누적 보안 업데이트 974455를 계속 적용하고, 이 문서에 설명된 현상이 발생할 경우 업데이트 976749를 설치하는 것이 좋습니다. 누적 보안 업데이트를 제거하면 시스템이 위험에 노출됩니다.

"현상" 절에서 논의된 첫 번째 및 두 번째 시나리오에서 보안 업데이트 974455를 설치하지 않으려는 경우 한 가지 해결 방법을 구현할 수 있습니다. 이 문제를 해결하려면 Array() 변수를 VBScript 변수로 명시적으로 선언하십시오. 배열은 "유형 불일치" 스크립트 오류 없이 showModalDialog() 또는 showModelessDialog() 메서드로 전달될 수 있습니다.

예를 들어 다음 VBScript는 "유형 불일치" 스크립트 오류를 발생합니다.
// TYPE MISMATCH
vReturn = window.showModalDialog("http://www.contoso.com", Array(1,2,3,4,5,6,7))
다음 VBScript는 "유형 불일치" 스크립트 오류 없이 showModialDialog() 또는 showModelessDialog() 메서드에 배열을 전달합니다.
// 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는 "유형 불일치" 스크립트 오류를 발생합니다.

// TYPE MISMATCH
Dim arrayItems
arrayItems(0) = 1
arrayItems(1) = 2
arrayItems(2) = 3
Window.returnvalue = arrayItems
Join 및 Split VBScript 함수를 사용할 경우 "유형 불일치" 스크립트 오류 없이 returnValue 속성을 설정할 수 있습니다.

// 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 서브루틴 및 함수에서 사용할 수 있습니다. JavaScript 함수에 의해 설정된 returnValue 속성 값은 VBScript에서 사용할 수 있습니다.

예를 들어 다음 VBScript는 "유형 불일치" 스크립트 오류를 발생합니다.
// TYPE MISMATCH
<script LANGUAGE=vbscript>
Option Explicit
Sub Window_OnLoad
Dim abc(1,2,3)
Window.ReturnValue = abc
End Sub
</script>
JavaScript 함수를 기존의 VBScript와 함께 사용하면 "유형 불일치" 스크립트 오류 없이 returnValue 속성을 설정할 수 있습니다.
// 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 제품에서 이 문제를 확인했습니다.

속성

기술 자료: 976949 - 마지막 검토: 2009년 12월 1일 화요일 - 수정: 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