서버 쪽 포함 <serverSideInclude>
개요
요소는 <serverSideInclude>
IIS(인터넷 정보 서비스) 7에 대해 서버 쪽 포함(SSI) #exec 지시문을 사용하지 않도록 설정할지 여부를 지정합니다.
특히 요소에는 <serverSideInclude>
ssiExecDisable이라는 단일 특성이 포함되어 있습니다. ssiExecDisable 특성을 true로 설정하면 IIS 7에 대한 SSI #exec 지시문이 비활성화되어 SSI 파일이 서버에서 프로그램, 스크립트 또는 셸 명령을 실행하지 못하게 됩니다.
호환성
버전 | 참고 |
---|---|
IIS 10.0 | <serverSideInclude> 요소가 IIS 10.0에서 수정되지 않았습니다. |
IIS 8.5 | <serverSideInclude> 요소가 IIS 8.5에서 수정되지 않았습니다. |
IIS 8.0 | <serverSideInclude> 요소가 IIS 8.0에서 수정되지 않았습니다. |
IIS 7.5 | <serverSideInclude> 요소가 IIS 7.5에서 수정되지 않았습니다. |
IIS 7.0 | 요소는 <serverSideInclude> IIS 7.0에서 도입되었습니다. |
IIS 6.0 | 요소는 <serverSideInclude> IIS 6.0 SSIExecDisable 메타베이스 속성을 대체합니다. |
참고
#exec 대한 cmd 지시문은 IIS 7의 SSI 파일에 대해 사용하지 않도록 설정됩니다. cgi 지시문만 사용할 수 있습니다. 예를 들어 cgi 지시문과 함께 다음 명령을 사용할 수 있습니다.
<!--#exec cgi="/HITCOUNTER.EXE"-->
그러나 cmd 지시문과 함께 다음 명령을 더 이상 사용할 수 없습니다.
<!--#exec cmd="dir /b"-->
IIS 7의 SSI 파일에서 cmd 지시문을 사용하려고 하면 다음 오류 메시지가 표시됩니다.
CMD 옵션은 #EXEC 호출에 사용할 수 없습니다.
설치 프로그램
<serverSideInclude>
요소는 IIS 7 이상의 기본 설치에서 사용할 수 없습니다. 설치하려면 다음 단계를 사용합니다.
Windows Server 2012 또는 Windows Server 2012 R2
- 작업 표시줄에서 서버 관리자를 클릭합니다.
- 서버 관리자관리 메뉴를 클릭한 다음 역할 및 기능 추가를 클릭합니다.
- 역할 및 기능 추가 마법사에서 다음을 클릭합니다. 설치 유형을 선택하고 다음을 클릭합니다. 대상 서버를 선택하고 다음을 클릭합니다.
- 서버 역할 페이지에서 웹 서버(IIS)를 확장하고 웹 서버를 확장하고 애플리케이션 개발을 확장한 다음 서버 쪽 포함을 선택합니다. 다음을 클릭합니다.
. - 기능 선택 페이지에서 다음을 클릭합니다.
- 설치 선택 확인 페이지에서 설치를 클릭합니다.
- Results(결과) 페이지에서 Close(닫기)를 클릭합니다.
Windows 8 또는 Windows 8.1
- 시작 화면에서 포인터를 왼쪽 아래 모서리로 이동하고 시작 단추를 마우스 오른쪽 단추로 클릭한 다음 제어판 클릭합니다.
- 제어판프로그램 및 기능을 클릭한 다음 Windows 기능 켜기 또는 끄기를 클릭합니다.
- 인터넷 정보 서비스를 확장하고, World Wide Web Services를 확장하고, 애플리케이션 개발 기능을 확장한 다음, 서버 쪽 포함을 선택합니다.
- 확인을 클릭합니다.
- 닫기를 클릭합니다.
Windows Server 2008 또는 Windows Server 2008 R2
- 작업 표시줄에서 시작을 클릭하고 관리 도구를 가리킨 다음 서버 관리자 클릭합니다.
- 서버 관리자 계층 구조 창에서 역할을 확장한 다음 웹 서버(IIS)를 클릭합니다.
- 웹 서버(IIS) 창에서 Role Services 섹션으로 스크롤한 다음 역할 서비스 추가를 클릭합니다.
- 역할 서비스 추가 마법사의 역할 서비스 선택 페이지에서 서버 쪽 포함을 선택하고 다음을 클릭합니다.
- 설치 선택 확인 페이지에서 설치를 클릭합니다.
- Results(결과) 페이지에서 Close(닫기)를 클릭합니다.
Windows Vista 또는 Windows 7
- 작업 표시줄에서 시작을 클릭한 다음 제어판 클릭합니다.
- 제어판프로그램 및 기능을 클릭한 다음 Windows 기능 켜기 또는 끄기를 클릭합니다.
- 인터넷 정보 서비스를 확장한 다음 서버 쪽 포함을 선택한 다음 확인을 클릭합니다.
방법
IIS 7에 대한 요소를 구성하기 <serverSideInclude>
위한 사용자 인터페이스가 없습니다. 요소를 프로그래밍 방식으로 구성하는 <serverSideInclude>
방법에 대한 예제는 이 문서의 코드 샘플 섹션을 참조하세요.
구성
특성
attribute | Description |
---|---|
ssiExecDisable |
선택적 부울 특성입니다. SSI #exec 지시문을 사용할지(false) 또는 사용 안 함(true)을 지정합니다. 사용하지 않도록 설정하면 지시문이 서버에서 프로그램, 스크립트 또는 셸 명령을 실행할 수 없습니다. 기본값은 false 입니다. |
자식 요소
없음
구성 샘플
다음 구성 샘플에서는 기본 웹 사이트의 SSI 파일에 대한 #exec 명령을 사용하지 않도록 설정합니다.
<location path="Default Web Site">
<system.webServer>
<serverSideInclude ssiExecDisable="true" />
</system.webServer>
</location>
샘플 코드
다음 코드 샘플은 기본 웹 사이트의 SSI 파일에 대한 #exec 명령을 사용하지 않도록 설정합니다.
AppCmd.exe
appcmd.exe set config "Default Web Site" -section:system.webServer/serverSideInclude /ssiExecDisable:"True" /commit:apphost
참고
AppCmd.exe 사용하여 이러한 설정을 구성할 때 커밋 매개 변수 apphost
를 로 설정해야 합니다. 그러면 구성 설정이 ApplicationHost.config 파일의 적절한 위치 섹션에 커밋됩니다.
C#
using System;
using System.Text;
using Microsoft.Web.Administration;
internal static class Sample
{
private static void Main()
{
using (ServerManager serverManager = new ServerManager())
{
Configuration config = serverManager.GetApplicationHostConfiguration();
ConfigurationSection serverSideIncludeSection = config.GetSection("system.webServer/serverSideInclude", "Default Web Site");
serverSideIncludeSection["ssiExecDisable"] = true;
serverManager.CommitChanges();
}
}
}
VB.NET
Imports System
Imports System.Text
Imports Microsoft.Web.Administration
Module Sample
Sub Main()
Dim serverManager As ServerManager = New ServerManager
Dim config As Configuration = serverManager.GetApplicationHostConfiguration
Dim serverSideIncludeSection As ConfigurationSection = config.GetSection("system.webServer/serverSideInclude", "Default Web Site")
serverSideIncludeSection("ssiExecDisable") = True
serverManager.CommitChanges()
End Sub
End Module
JavaScript
var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";
var serverSideIncludeSection = adminManager.GetAdminSection("system.webServer/serverSideInclude", "MACHINE/WEBROOT/APPHOST/Default Web Site");
serverSideIncludeSection.Properties.Item("ssiExecDisable").Value = true;
adminManager.CommitChanges();
VBScript
Set adminManager = WScript.CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"
Set serverSideIncludeSection = adminManager.GetAdminSection("system.webServer/serverSideInclude", "MACHINE/WEBROOT/APPHOST/Default Web Site")
serverSideIncludeSection.Properties.Item("ssiExecDisable").Value = True
adminManager.CommitChanges()