추가적인 보안 고려 사항

레지스트리 문제

IIS 응용 프로그램은 다른 소프트웨어 응용 프로그램이 제공하는 리소스를 필요로 합니다. 예를 들어 ISAPI 확장 DLL은 타사 소프트웨어 회사의 Automation 서버를 호출하기도 하고 CGI 응용 프로그램은 Microsoft® Visual Basic®으로 작성된 프로그램을 실행하기도 합니다. 이런 구성 요소들은 제대로 실행되는 데 필요한 영구적인 정보를 레지스트리에 가지고 있을 수 있습니다. 이들 구성 요소를 표준 데스크톱에서 사용하는 경우 Windows가 설치된 컴퓨터에 현재 로그온되어 있는 사용자의 프로필에서 레지스트리 정보를 읽어 옵니다. IIS 응용 프로그램에 사용할 수 있도록 만들어진 프로필은 기본 사용자의 프로필이기 때문에 IIS에 의해 이들 응용 프로그램이 실행될 때 문제가 생깁니다. 기본 사용자 프로필은 모든 사용자에게 일반적인 정보로 되어 있는 데 반해 특정 사용자에 대해서는 사용할 수 없기 때문입니다. 따라서 User1이 자신의 데스크톱에서 구성 요소를 실행하면 레지스트리의 User1 프로필에서 정보를 읽기 때문에 구성 요소가 제대로 실행될 수도 있습니다. 그러나 동일한 응용 프로그램은 User1 프로필에 대한 액세스 권한을 가지고 있지 않기 때문에 IIS에서는 전혀 실행되지 않을 수도 있습니다. IIS가 기본 인증이나 Windows 통합 인증을 사용하여 User1의 계정을 가장하는 경우에도 이런 문제가 생깁니다.

바탕 화면 문제

Windows NT 4.0과 Windows 2000 이후 버전에서는 동일한 컴퓨터에 여러 개의 바탕 화면을 가지고 있다는 개념을 사용합니다. 바탕 화면은 사용자가 컴퓨터에 로그온할 때 보는 화면으로 생각할 수 있습니다. 바탕 화면은 컴퓨터에서 사용자로서 보내는 모든 마우스 및 키보드 메시지를 받고 응용 프로그램들이 어느 정도까지는 서로 대화할 수 있도록 합니다. 예를 들어 바탕 화면의 한 응용 프로그램이 같은 바탕 화면에 있는 다른 응용 프로그램으로 메시지를 전송할 수 있습니다. 여러 개의 바탕 화면을 지원한다는 것은 다른 바탕 화면이 실행되고 있다는 사실을 함축하고 있습니다. 즉, 사용자는 실행되고 있는 다른 바탕 화면을 볼 수 없고 키보드나 마우스 메시지를 다른 바탕 화면에 보낼 방법도 없습니다. 이것은 언뜻 보기에는 쓸모없는 개념처럼 보일 수도 있습니다. 하지만 실제 Windows 서비스로 실행되는 많은 응용 프로그램은 바탕 화면이 제공하는 기능을 필요로 하지만 대화하는 사용자의 바탕 화면과 상호 작용하기를 원하지는 않습니다. 그러므로 각 서비스는 현재 로그온되어 있는 사용자에 의해 간섭받지 않는 자신의 바탕 화면만 가져옵니다.

IIS 응용 프로그램이 어떤 식으로든 바탕 화면과 상호 작용하면(예를 들어 메시지 상자를 표시하는 경우) 컴퓨터 모니터에서 볼 수 없는 메시지 상자를 바탕 화면에 표시합니다. 이와 비슷하게 IIS 응용 프로그램은 대화식 바탕 화면에 있는 응용 프로그램으로 메시지를 보내거나 전송할 수 없습니다. IIS 응용 프로그램이 대화식 바탕 화면과 상호 작용할 필요가 있는 경우에는 명명된 파이프 같은 다른 프로세스 내부 통신 형식을 사용합니다. Platform SDK의 Windows 기본 서비스에 있는 "프로세스 내부 통신"을 참조하십시오.

ISAPI 필터 DLL

ISAPI 필터 DLL은 ISAPI 확장 DLL과는 다른 것으로 IIS 서비스의 원래 컨텍스트에서 실행됩니다. 모든 서비스가 설치된 컴퓨터의 Local System 계정 하에서 모든 서비스는 기본적으로 실행됩니다. Local System 계정은 로컬 컴퓨터에 있는 거의 모든 리소스에 대해 액세스 권한을 가지며 네트워크 상의 다른 컴퓨터에 있는 리소스에 대해서 액세스하지 못합니다.


© 1997-2001 Microsoft Corporation. All rights reserved.