ASP.NET에서 인가 문제를 확인하기 위한 HTTP 모듈

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

이 페이지에서

요약

Microsoft에서는 고객이 자신의 ASP.NET 응용 프로그램을 보호하는 데 도움이 될 수 있는 최적의 인가 방법을 구현하는 HTTP 모듈을 출시했습니다. 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
887459 ASP.NET의 인가 문제를 프로그래밍 방식으로 확인
ASP.NET의 버전을 확인하는 방법에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
318785 INFO: .NET Framework의 서비스 팩 설치 여부 확인
ASP.NET의 인가 문제에 대한 자세한 내용을 보려면 다음 Microsoft 웹 사이트를 방문하십시오.
http://www.microsoft.com/korea/security/incident/aspnet.asp

현상

웹 서버는 URL을 받으면 응답을 확인하는 요청을 파일 시스템 경로에 매핑합니다. 예기치 않은 콘텐츠를 서비스하거나 처리하는 것을 막으려면 요청을 매핑하는 데 사용되는 인가 루틴이 URL을 제대로 구문 분석해야 합니다. 처리되지 않은 인가 문제로 인해 예기치 않은 결과가 발생할 수 있습니다. 인가에 대한 자세한 내용을 보려면 다음 Microsoft 웹 사이트를 방문하십시오.
http://msdn2.microsoft.com/en-us/library/aa302420.aspx

해결 방법

Microsoft.Web.ValidatePathModule.dll - HTTP 모듈

다운로드 정보

Microsoft 다운로드 센터에서 다음 파일을 다운로드할 수 있습니다.

그림 축소그림 확대
다운로드
지금 VPModule.msi 패키지 다운로드

릴리스 날짜: 2004년 10월 7일

Microsoft 지원 파일을 다운로드하는 방법에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
119591 온라인 서비스로부터 Microsoft 지원 파일을 구하는 방법
Microsoft는 파일을 게시한 날짜에 사용할 수 있는 최신의 바이러스 예방 프로그램으로 이 파일을 검사했습니다. 이 파일은 무단으로 변경할 수 없는 보안이 향상된 서버에 보관됩니다.

전제 조건

VPModule.msi 파일은 32비트 Microsoft .NET Framework용으로 만들어졌습니다.

VPModule.msi 파일을 설치하기 전에 사용자 컴퓨터에 있는 Machine.config 파일의 인스턴스를 모두 백업하십시오. Machine.config 파일의 백업 복사본을 만들려면 다음과 같이 하십시오.
  1. 시작, 실행을 차례로 누르고 cmd를 입력한 다음 확인을 누릅니다.
  2. Machine.config 파일의 모든 버전을 찾습니다. Machine.config 파일은 아래 폴더에 있습니다(여기서 <framework version number>는 설치한 Microsoft .NET Framework의 버전임).
    %windir%\Microsoft.NET\Framework\<framework version number>\CONFIG
    예를 들어 C 드라이브에 .NET Framework 1.1을 설치한 경우에는 아래와 같이 입력한 다음 Enter 키를 누릅니다.
    cd /d %windir%\microsoft.net\framework\v1.1.4322\config
  3. Machine.config 파일의 백업 복사본을 만들려면 아래와 같이 입력한 다음 Enter 키를 누릅니다.
    copy machine.config machine.config.bak
시스템에 설치되어 있는 각 .NET Framework 인스턴스에 대해 위의 단계를 반복합니다.

설치 정보

Microsoft는 VPModule.msi라는 설치 패키지를 출시했습니다. VPModule.msi 파일은 사용자 시스템에 Microsoft.Web.ValidatePathModule.dll 파일을 설치합니다. 설치 과정에서 설치되어 있는 모든 .NET Framework 버전의 Machine.config 파일이 새로운 HTTP 모듈 항목으로 업데이트됩니다.

설치 패키지를 사용하려면 VPModule.msi 파일을 다운로드하고, 패키지를 두 번 눌러 설치를 시작한 다음 설치 지침을 따릅니다.

VPModule.msi에서 수행하는 작업

설치 관리자는 먼저 Microsoft.Web.ValidatePathModule.dll이라는 파일의 압축을 풉니다. 그런 다음 파일이 아래와 같은 항목을 갖도록 시스템에 존재하는 Machine.config 파일을 모두 업데이트합니다.
    <system.web>
        <httpModules>
            <add name="ValidatePathModule" type="Microsoft.Web.ValidatePathModule, Microsoft.Web.ValidatePathModule, Version=1.0.0.0, Culture=neutral, PublicKeyToken=eba19824f86fdadd"/>
        </httpModules>
    </system.web>
그런 다음 설치 관리자는 전역 어셈블리 캐시(GAC)에 Microsoft.Web.ValidatePathModule.dll 파일을 추가합니다.

Microsoft.Web.ValidatePathModule.dll 파일이 프로그래밍 방식으로 수행하는 작업을 이해하려는 개발자를 위해 소스 코드가 아래에 나와 있습니다.
namespace Microsoft.Web {
??? public class ValidatePathModule : IHttpModule {
??????? public ValidatePathModule() {
??????? }
??????? void IHttpModule.Init(HttpApplication app) {
??????????? app.BeginRequest += new EventHandler(this.OnBeginRequest);
????? ??}
??????? void IHttpModule.Dispose() {
??????? }
??????? void OnBeginRequest(Object source, EventArgs eventArgs) {
??????????? HttpRequest request = (source as HttpApplication).Request;
??????????? string physicalPath = request.PhysicalPath;
??????????? if (request.Path.IndexOf('\\') >= 0 || Path.GetFullPath(physicalPath) != physicalPath) {
??????????????? throw new HttpException(404, "Not Found");
??????????? }
??????? }
??? }
}
모듈을 설치하는 데 사용할 수 있는 명령줄 스위치에 대한 자세한 내용을 보려면 다음 Microsoft 웹 사이트를 방문하십시오.
http://msdn2.microsoft.com/en-us/library/aa367988.aspx

설치 확인 정보

모듈을 제대로 설치했으면 다음과 같은 레지스트리 키가 존재합니다.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{30EFFF0C-573D-46FB-8AD5-00887289261A}
참고 "사용자 지정 설치 정보" 절에 나와 있는 것처럼 HTTP 모듈을 수동으로 설치한 경우에는 이 레지스트리 키가 시스템에 없습니다. /a 옵션은 파일 압축을 풀기만 할 뿐입니다. 레지스트리를 업데이트하지는 않습니다.

제거 정보

이 변경 내용을 제거하려면 VPModule.msi 파일을 실행하고 Remove 옵션을 선택하십시오. 또는 제어판의 프로그램 추가/제거를 사용하십시오.

무인 정보

이 변경 내용을 무인 모드에서 설치하려면 다음 명령을 사용합니다.
msiexec /i vpmodule.msi /qb-
이 변경 내용을 무인 모드에서 제거하려면 다음 명령을 사용합니다.
msiexec /x vpmodule.msi /qb-

사용자 지정 설치 정보

수동으로 HTTP 모듈을 설치하려면 다음과 같이 하십시오.
  1. Machine.config 파일을 백업합니다. 이 파일을 백업하는 방법에 대한 자세한 내용은 "전제 조건" 절을 참조하십시오.
  2. 패키지를 다운로드합니다. 패키지를 다운로드하는 방법에 대한 자세한 내용은 "다운로드 정보" 절을 참조하십시오.
  3. 다음 명령을 사용하여 Microsoft.Web.ValidatePathModule.dll 파일을 VPModule.msi 파일에서 선택한 위치로 추출합니다.
    msiexec /a vpmodule.msi
  4. 다음 명령을 사용하여 모듈을 GAC로 복사합니다.
    gacutil -i microsoft.web.validatepathmodule.dll
    참고 모듈은 지정한 위치 아래에 있는 "Microsoft ValidatePath Module"이라는 폴더로 추출됩니다.
  5. Machine.config 파일을 편집하여 <httpModules> 구역에 아래의 항목을 추가합니다.
    <add name="ValidatePathModule" type="Microsoft.Web.ValidatePathModule, Microsoft.Web.ValidatePathModule, Version=1.0.0.0, Culture=neutral, PublicKeyToken=eba19824f86fdadd"/>
    

알려진 문제

알려진 문제는 아래와 같습니다.
  • 설치 관리자가 Machine.config 파일이 Microsoft.Web.ValidatePathModule.dll 파일에 대해 <httpModule> 항목으로 성공적으로 업데이트되었는지 확인합니다. 그러나 특정 상황에서는 이렇게 하면 앞에서 설명한 문제가 발생하는 것을 중지하지 못할 수 있습니다.

    이 문제는 Web.config 파일이 존재하는 경우 Web.config 파일이 Machine.config 수준에서 정의된 목록을 지울 때 발생할 수 있습니다. 예를 들어 아래와 같은 내용의 항목이 Web.config 파일에 있으면 이로 인해 이 문제가 발생할 수 있습니다.
    <httpModules>
        <clear/>
    </httpModules>
    
    이러한 구성의 경우 이 특정 응용 프로그램에서 문제 완화 모듈을 실행할 수 없습니다. 이 구성은 보통 응용 프로그램이 Machine.config 수준에서 정의되는 HTTP 모듈을 사용하지 않고 대신 목록을 지운 다음 현재 응용 프로그램에 특정한 목록을 새로 정의하려는 경우에 나타납니다.
  • .NET Framework의 다른 버전을 설치하는 경우에는 VPModule.msi 파일을 제거한 다음 다시 설치해야 합니다.
  • SQL Server Reporting Services와 VPModule.msi의 문제에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
    887787 ASP.NET ValidatePath 모듈을 설치하면 Reporting Services에서 오류 메시지가 나타날 수 있다

참조

자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
887405 Windows Installer 및 그룹 정책을 사용하여 Active Directory 도메인에서 VPModule.msi를 배포하는 방법
자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
887404 Systems Management Server 2003을 사용하여 ValidatePath 모듈을 배포하는 방법
자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
887290 ASP.NET ValidatePath Module Scanner(VPModuleScanner.js)를 사용하는 방법
세션 상태에 대한 자세한 내용을 보려면 다음 Microsoft 웹 사이트를 방문하십시오.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconsessionstate.asp




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

속성

기술 자료: 887289 - 마지막 검토: 2007년 12월 3일 월요일 - 수정: 3.6
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft ASP.NET 1.0
  • Microsoft ASP.NET 1.1
  • 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
  • Microsoft .NET Framework Software Development Kit 1.0 Service Pack 2
  • Microsoft .NET Framework Software Development Kit 1.0 Service Pack 1
  • Microsoft .NET Framework Software Development Kit 1.0 Service Pack 2
키워드:?
kbsecurity kbtshoot KB887289

피드백 보내기

 

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