보안 업데이트 887219(MS05-004)를 설치한 후 ASP.NET 응용 프로그램을 탐색하거나 디버깅하면 오류 메시지가 나타날 수 있다

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

이 페이지에서

요약

보안 업데이트 MS05-004를 설치한 후 일부 ASP.NET 응용 프로그램을 탐색하거나 디버깅하려고 하면 오류가 발생할 수 있습니다. 이 문서에서는 나타날 수 있는 몇 가지 오류 메시지에 대해 설명하고 이러한 문제를 해결하는 방법을 제공합니다.

현상

보안 업데이트 MS05-004를 설치한 후 URL에 후행 백슬래시(\)가 포함된 Microsoft ASP.NET 응용 프로그램을 디버깅하면 다음과 유사한 오류 메시지 중 하나가 나타날 수 있습니다.
리소스를 찾을 수 없습니다.
설명: HTTP 404. 찾고 있는 리소스 또는 해당 리소스에 종속되어 있는 리소스 중의 하나가 제거되었거나 이름이 변경되었거나, 일시적으로 사용할 수 없습니다. 아래 URL의 철자가 정확한지 확인하십시오.

프로젝트를 실행하는 동안 오류가 발생했습니다. 웹 서버에서 디버깅을 시작할 수 없습니다. ASP.NET 또는 ATL 서버 디버깅을 시작할 수 없습니다. 서버에 ASP.NET 또는 ATL 서버가 제대로 설치되어 있는지 확인하십시오.

원인

Microsoft Internet Information Services(IIS) 메타베이스에 지정된 URL에 후행 백슬래시(\)가 포함된 경우 이 문제가 발생합니다.

해결 방법

이 문제를 해결하려면 영향을 받는 웹 응용 프로그램에 대해 지정된 URL의 IIS 메타베이스에서 후행 백슬래시를 제거하십시오. 이렇게 하려면 다음 방법 중 하나를 사용하십시오.

방법 1: IIS 관리자 사용

  1. 시작, 실행을 차례로 누르고 cmd를 입력한 다음 확인을 누릅니다.
  2. %systemroot%\system32\inetsrv 디렉터리를 찾습니다.
  3. 명령 프롬프트에서 inetmgr을 입력하여 IIS 관리자를 엽니다.
  4. 변경할 URL에 해당하는 웹 사이트를 마우스 오른쪽 단추로 누른 다음 속성을 누릅니다.
  5. 영향을 받는 응용 프로그램이 웹 사이트 아래의 가상 디렉터리인 경우 디렉터리 탭을 누른 다음 로컬 경로 텍스트 상자에 지정된 경로에서 후행 백슬래시를 제거합니다.

    영향을 받는 응용 프로그램이 웹 사이트의 루트 디렉터리인 경우 홈 디렉터리 탭을 누른 다음 로컬 경로 텍스트 상자에 지정된 경로에서 후행 백슬래시를 제거합니다.
  6. 적용을 누른 다음 확인을 누릅니다.

방법 2: .vbs 스크립트 사용

  1. 다음과 같은 내용으로 .vbs 스크립트를 만듭니다.
    
    Option Explicit
    
    Dim objWebService, objWebSite
    Dim objSite, objArgs, strServer
    Dim WshNetwork
    
    Set objArgs = WScript.Arguments
    
    If objArgs.Length = 1 Then
    	strServer = objArgs(0)
    ElseIf  objArgs.Length = 0 Then
    	Set WshNetwork = CreateObject("WScript.Network")
    	strServer = WshNetwork.ComputerName
    Else
    	WScript.Echo "Usage: CScript ModifyVDir.vbs [servername]"
    	WScript.Quit
    End If
    WScript.Echo "Connecting to " & strServer
    
    Set objWebService = GetObject("IIS://" & strServer & "/W3SVC")
    
    For Each objWebSite in objWebService
    	Set objSite = GetObject(objWebSite.AdsPath)
    	If objSite.Class = "IIsWebServer" Then
    		WScript.Echo objSite.AdsPath
    		EnumVDir objSite, 1
    	End If
    Next
    
    WScript.Echo "Done processing."
    
    Sub EnumVDir(objVDir, i)
    	Dim objSubVDir, objDir
    	Dim strNewPath
    	
    	For Each objSubVDir in objVDir
    		If objSubVDir.Class = "IIsWebVirtualDir" Then
    			Set objDir = GetObject(objSubVDir.AdsPath)
    			
    			If ((Right(objDir.Path, 1) = "\") and (Right(objDir.Path, 2) <> ":\")) Then
    				WScript.Echo Space(i*3) & objDir.AdsPath
    				WScript.Echo Space(i*3) & "Path = " & objDir.Path
    
    				strNewPath = Left(objDir.Path, Len(objDir.Path) - 1)
    				WScript.Echo Space(i*3) & "New Path = " & strNewPath
    					
    				objDir.Put "Path", strNewPath
    				objDir.SetInfo
    			End If
    			
    			EnumVDir objDir, i + 1
    		End If
    	Next
    End Sub
    
    
  2. 명령줄에서 .vbs 스크립트를 실행합니다.
    1. 시작, 실행을 차례로 누르고 cmd를 입력한 다음 확인을 누릅니다.
    2. 명령 프롬프트에서 cscript [filename.vbs]를 입력합니다.

      참고 filename은 .vbs 스크립트 이름의 자리 표시자입니다.
    3. 명령 프롬프트를 닫으려면 exit를 입력합니다.

추가 정보

이 보안 업데이트를 적용하면 ASP.NET이 실제 경로와 요청된 가상 경로의 유효성에 대해 보다 엄격한 검사를 수행합니다.

참조

MS05-004 보안 업데이트에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
887219 MS05-004: ASP.NET 경로 유효성 검사 취약점으로 인한 무단 액세스 문제




Microsoft 제품 관련 기술 전문가들과 온라인으로 정보를 교환하시려면 Microsoft 뉴스 그룹에 참여하시기 바랍니다.

속성

기술 자료: 894670 - 마지막 검토: 2007년 12월 3일 월요일 - 수정: 2.6
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft ASP.NET 1.1
  • Microsoft ASP.NET 1.0
  • Microsoft .NET Framework 1.0
  • Microsoft .NET Framework 1.0 서비스 팩 1
  • Microsoft .NET Framework 1.0 서비스 팩 2
  • Microsoft .NET Framework 1.0 Service Pack 3
  • Microsoft .NET Framework 1.1
  • Microsoft .NET Framework 1.1 Service Pack 1
키워드:?
kbhttp404 kbdev kbasp kbtshoot kberrmsg kbprb KB894670

피드백 보내기

 

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