다음을 통해 공유


샌드박스 솔루션 고려 사항

샌드박스 솔루션은 사이트 모음 사용자가 고유한 사용자 지정 코드 솔루션을 업로드할 수 있도록 하는 Microsoft SharePoint 2010의 기능입니다. 일반적인 샌드박스 솔루션은 사용자가 자신의 웹 파트를 업로드하는 것입니다.

샌드박스가 적용된 SharePoint 애플리케이션은 웹 팜의 제한된 부분에 액세스할 수 있는 안전한 모니터링 프로세스에서 실행됩니다. Microsoft SharePoint 2010은 기능, 솔루션 갤러리, 솔루션 모니터링 및 유효성 검사 프레임워크의 조합을 사용하여 샌드박스 솔루션을 사용하도록 설정합니다.

프로젝트 신뢰 수준 지정

Visual Studio는 Sandboxed Solution이라는 부울 프로젝트 속성을 통해 샌드박스 솔루션을 지원합니다. 이 속성은 프로젝트에서 언제든지 설정하거나 SharePoint 사용자 지정 마법사에서 프로젝트를 만들 때 지정할 수 있습니다.

참고 항목

프로젝트를 만든 후 Sandboxed Solution 속성을 변경하면 유효성 검사 오류가 발생할 수 있습니다.

Sandboxed Solution 속성이 false로 설정되어 있거나 팜 솔루션으로 배포 옵션을 선택한 경우 솔루션은 팜 범위 솔루션으로 간주됩니다. 그러나 Sandboxed Solution 속성이 true로 설정되거나 마법사에서 샌드박스 솔루션으로 배포 옵션을 선택하면 솔루션이 팜 솔루션과는 다르게 처리됩니다.

SharePoint 사이트 계층 구조

샌드박스 솔루션의 작동 방식을 이해하려면 SharePoint 사이트가 범위 측면에서 계층적이라는 것을 아는 것이 좋습니다. 최상위 요소는 웹 팜이라고 하며, 다른 요소는 이에 대한 하위 요소입니다.

웹 팜

웹 애플리케이션 A

사이트 모음 A1

사이트 A1a

웹 애플리케이션 B

사이트 모음 B1

사이트 B1a

사이트 B1b

사이트 모음 B2

사이트 B2a

보시다시피 웹 팜에는 하나 이상의 웹 애플리케이션이 포함될 수 있으며, 이 웹 애플리케이션에는 하위 사이트 등이 포함될 수 있는 하나 이상의 사이트 모음이 포함될 수 있습니다. 한 사이트 모음에 대한 변경 내용은 해당 사이트 모음에만 영향을 미치며 다른 사이트 모음에는 영향을 미치지 않습니다. 그러나 웹 팜 수준에서 변경한 내용은 팜의 모든 사이트 모음에 영향을 미칩니다.

WSS(Windows SharePoint Services) 3.0을 사용하면 팜 수준에만 솔루션을 배포할 수 있지만 Microsoft SharePoint Foundation을 사용하면 팜 수준(팜 솔루션) 또는 사이트 모음 수준(샌드박스 솔루션)에 배포할 수 있습니다.

샌드박스 솔루션이란?

WSS 3.0에서는 팜 수준에만 솔루션을 배포할 수 있습니다. 이는 전체 웹 팜 및 그 아래에서 실행되는 다른 모든 사이트 모음 및 애플리케이션에 영향을 주는 잠재적으로 유해하거나 불안정해지는 솔루션을 배포할 수 있음을 의미합니다. 그러나 샌드박스 솔루션을 사용하면 팜의 하위 부분인 특정 사이트 모음에 솔루션을 배포할 수 있습니다. 추가 보호를 제공하기 위해 솔루션의 어셈블리는 기본 IIS 프로세스(w3wp.exe)에 로드되지 않습니다. 대신 별도의 프로세스(SPUCWorkerProcess.exe)로 로드됩니다. 이 프로세스는 CPU 주기를 사용하는 엄격한 반복 실행과 같은 유해한 작업을 수행하는 샌드박스 솔루션으로부터 팜을 보호하기 위해 할당량 및 제한을 모니터링하고 구현합니다.

Windows SharePoint Services 2010에는 "사이트 모음 솔루션 갤러리"라는 기능이 있습니다. SharePoint 2010 중앙 관리 페이지에서 이 기능에 액세스하거나 사이트 작업 메뉴를 열고 사이트 설정을 선택한 다음 SharePoint 사이트의 갤러리 아래에서 솔루션 링크를 선택하면 이 기능에 액세스할 수 있습니다. 솔루션 갤러리는 사이트 모음 관리자가 사이트 모음의 솔루션을 관리할 수 있도록 하는 솔루션의 리포지토리입니다.

솔루션 갤러리는 SharePoint 사이트의 루트 웹에 저장된 문서 라이브러리입니다. 솔루션 갤러리는 사이트 템플릿을 대체하고 솔루션 패키지를 지원합니다. SharePoint 솔루션 패키지(.wsp) 파일이 업로드되면 샌드박스 솔루션으로 처리됩니다.

샌드박스 솔루션 제한 사항

샌드박스 솔루션이 배포되면 사용 가능한 SharePoint 기능 배열을 제한하여 잠재적인 보안 취약성을 줄일 수 있습니다. 이러한 제한 사항 중 일부는 다음과 같습니다.

  • 샌드박스가 적용된 솔루션에는 배포 가능한 솔루션 요소의 제한된 하위 집합이 있습니다. 잠재적으로 취약한 SharePoint 프로젝트 템플릿(예: 사이트 정의 및 워크플로)은 사용할 수 없습니다.

  • SharePoint는 기본 IIS 애플리케이션 풀(w3wp.exe) 프로세스와 별개인 프로세스(SPUCWorkerProcess.exe)에서 샌드박스 솔루션 코드를 실행합니다.

  • 매핑된 폴더는 프로젝트에 추가할 수 없습니다.

  • Microsoft SharePoint Server 어셈블리 Microsoft.Office.Server의 형식은 샌드박스 솔루션에서 사용할 수 없습니다. 또한 Microsoft SharePoint Foundation 어셈블리 Microsoft.SharePoint의 유형만 샌드박스 솔루션에서 사용할 수 있습니다.

    SharePoint 솔루션을 샌드박스 솔루션으로 지정해도 SharePoint 서버에는 영향을 미치지 않습니다. SharePoint 프로젝트가 Visual Studio에서 SharePoint로 배포되는 방법 및 바인딩되는 어셈블리만 결정합니다. 생성된 .wsp 파일에는 영향을 주지 않으며 .wsp 파일에는 Sandboxed Solution 속성과 직접적으로 관련된 데이터가 없습니다.

샌드박스 솔루션의 기능 및 요소

샌드박스 솔루션은 다음과 같은 기능 및 요소를 지원합니다.

  • 콘텐츠 형식/필드

  • 사용자 지정 작업

  • 선언적 워크플로

  • 이벤트 수신자

  • 기능 콜아웃

  • 정의 나열

  • 목록 인스턴스

  • 모듈/파일

  • 탐색

  • Onet.xml

  • SPItemEventReceiver

  • SPListEventReceiver

  • SPWebEventReceiver

  • System.Web.UI.WebControls.WebParts.WebPart에서 파생되는 모든 웹 파트 지원

  • 웹 파트

  • WebTemplate 기능 요소(Webtemp.xml 대신)

  • 비주얼 웹 파트

    샌드박스 솔루션은 다음과 같은 기능 및 요소를 지원하지 않습니다.

  • 애플리케이션 페이지

  • 사용자 지정 작업 그룹

  • 팜 범위 기능

  • HideCustomAction 요소

  • 웹 애플리케이션 범위 기능

  • 코드가 있는 워크플로