Microsoft로 로그인
로그인하거나 계정을 만듭니다.
안녕하세요.
다른 계정을 선택합니다.
계정이 여러 개 있음
로그인할 계정을 선택합니다.

소개

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 제품에서 이 문제를 확인했습니다.

도움이 더 필요하세요?

더 많은 옵션을 원하세요?

구독 혜택을 살펴보고, 교육 과정을 찾아보고, 디바이스를 보호하는 방법 등을 알아봅니다.

커뮤니티를 통해 질문하고 답변하고, 피드백을 제공하고, 풍부한 지식을 갖춘 전문가의 의견을 들을 수 있습니다.

이 정보가 유용한가요?

언어 품질에 얼마나 만족하시나요?
사용 경험에 어떠한 영향을 주었나요?
제출을 누르면 피드백이 Microsoft 제품과 서비스를 개선하는 데 사용됩니다. IT 관리자는 이 데이터를 수집할 수 있습니다. 개인정보처리방침

의견 주셔서 감사합니다!

×