Composer의 ThingWorx 모델 정의 > 보안 > 콘텐츠 보안 정책
콘텐츠 보안 정책
ThingWorx 고객의 보안 자세를 개선하기 위해 ThingWorx 9.3.15, 9.4.5 및 9.5.1부터 ThingWorx Platform에 콘텐츠 보안 정책(CSP)을 추가했습니다.
CSP
CSP는 웹 브라우저가 교차 사이트 스크립팅(XXS), 클릭재킹 및 기타 데이터 삽입 공격을 보호하는 데 사용되는 주요 보안 도구 입니다. CSP는 ThingWorx Platform의 CSP 머리글을 웹 브라우저에 삽입하여 브라우저가 로드할 수 있는 동적 데이터와 리소스 및 도메인을 제어하는 방식으로 작동합니다. 허용되는 도메인 외부의 리소스 요청은 브라우저로 로드할 수 없습니다.
제어된 리소스의 예는 다음과 같습니다.
글꼴, 이미지 및 JavaScript 라이브러리 로드
ThingWorx 매쉬업의 iFrame에서 외부 소스의 콘텐츠 렌더링
Windchill 페이지에서 ThingWorx 매쉬업 렌더링과 같이 외부 페이지의 iFrame에서 ThingWorx 페이지 콘텐츠 렌더링
관리자는 ThingWorx Composer를 통해 CSP 지시문을 구성합니다. CSP 머리글은 모든 지시문의 조합이며 CSP 정책을 구성합니다. CSP 머리글은 1,200자로 제한됩니다.
ThingWorx는 콘텐츠 보안 정책 수준 2를 구현했습니다. CSS에 대한 자세한 내용은 다음을 참조하십시오.
Composer
기본 페이지 배너
관리자에게 이 새로운 보안 기능을 알리고 해당 기능이 활성화되지 않았음을 경고하기 위해 ThingWorx Composer에서는 Composer 상단에 콘텐츠 보안 정책(CSP)이 사용 가능으로 설정되어 있지 않습니다. 자세한 내용은 도움말 센터를 참조하십시오.라는 비차단 경고 배너를 표시합니다.
이 배너는 CSP가 활성화되지 않은 경우에만 나타나며 관리자에게만 나타납니다. 관리자는 경고를 스스로 해제하여 향후 로그인 시 나타나지 않도록 할 수 있습니다. 다른 관리자는 배너를 해제할 때까지 배너를 계속 받습니다. 이 배너에는 콘텐츠 보안 정책 항목에 대한 도움말 센터 링크가 포함되어 있습니다.
CSP 구성
관리자는 플랫폼 하위 시스템의 콘텐츠 보안 정책 규칙 하위 페이지를 통해 CSP를 구성합니다. 이 페이지에서 관리자는 정책을 정의하는 지시문을 추가하고 수정할 수 있습니다. 자세한 내용은 콘텐츠 보안 정책 머리글 값 구성을 참조하십시오.
CSP 활성화
CSP는 platform-settings.json에서 새 매개 변수인 “EnableContentSecurityPolicyFilter”: true를 설정하면 활성화됩니다.
"EnableContentSecurityPolicyFilter"true로 설정되면 CSP 보호가 활성화됩니다. "EnableContentSecurityPolicyFilter"false로 설정되거나 platform-settings.json에 포함되지 않으면 CSP가 비활성화됩니다.
설치 및 업그레이드 지침은 도움말 센터의 설치 및 업그레이드 섹션에 있습니다.
CSP 필터가 있는 새 ThingWorx Platform 설치
수동 설치
ThingWorx Foundation 설치 관리자
CSP를 지원하는 버전으로 ThingWorx 업그레이드
유지보수 릴리즈 업그레이드에 대해서는 유지보수 릴리즈 업그레이드를 참조하십시오.
Windows 수동 업그레이드의 경우 다음을 참조하십시오.
Linux 수동 업그레이드의 경우 다음을 참조하십시오.
ThingWorx Foundation 설치 프로그램 업그레이드에 대해서는 설치 관리자 업그레이드를 참조하십시오.
기존 환경에서 CSP 활성화 또는 비활성화
기존 환경에서 CSP를 활성화하거나 비활성화하려면 다음 단계를 수행하십시오.
1. platform-settings.json의 PlatformSettingsConfig 아래 BasicSettings 섹션에서 EnableContentSecurityPolicyFilter 플래그를 true로 설정합니다.
2. Tomcat 서버를 재시작합니다.
* 
ThingWorx 시작할 때 다음 조건이 모두 충족되면 web.xml의 ClickjackFilter 구성이 CSP로 자동 마이그레이션됩니다.
CSP 필터가 켜져 있습니다.
Clickjack 필터가 web.xml에 구성되었습니다.
ThingWorx 관리자가 ThingWorx Composer에 CSP 필터를 아직 구성하지 않았습니다.
ClickjackFilter 설정을 CSP로 마이그레이션
ThingWorx가 시작할 때 다음 조건이 충족되면 ClickjackFilter 구성이 CSP로 자동 마이그레이션됩니다.
콘텐츠 보안 정책 필터가 켜져 있습니다. 이는 EnableContentSecurityPolicyFiltertrue로 설정되어 있음을 의미합니다.
ClickjackFilter가 web.xml을 사용하여 구성되었습니다.
CSP 필터가 UI에서 아직 구성되지 않았습니다.
ClickjackFilter는 SAMEORIGIN, DENY, ALLOWLIST의 세 가지 모드 중 하나로 구성할 수 있습니다.
ClickjackFilter가 SAMEORIGIN으로 구성된 경우 frame-ancestors에 대한 CSP 기본 구성이므로 마이그레이션되는 것은 없습니다.
<filter>
<filter-name>ClickjackFilterSameOrigin</filter-name>
<filter-class>com.thingworx.security.filter.ClickjackFilter</filter-class>
<init-param>
<param-name>mode</param-name>
<param-value>SAMEORIGIN</param-value>
</init-param>
</filter>

<filter-mapping>
<filter-name>ClickjackFilterSameOrigin</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
ClickjackFilter가 DENY로 구성된 경우 CSP 머리글 frame-ancestors'none'으로 구성됩니다.
<filter>
<filter-name>ClickjackFilterDeny</filter-name>
<filter-class>com.thingworx.security.filter.ClickjackFilter</filter-class>
<init-param>
<param-name>mode</param-name>
<param-value>DENY</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>ClickjackFilterDeny</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
ClickjackFilter가 ALLOWLIST로 구성된 경우 CSP 머리글 frame-ancestorsframe-src는 구성된 도메인을 허용하도록 구성됩니다.
<filter>
<filter-name>ClickjackFilterAllowList</filter-name>
<filter-class>com.thingworx.security.filter.ClickjackFilter</filter-class>
<init-param>
<param-name>mode</param-name>
<param-value>ALLOWLIST</param-value>
</init-param>
<init-param>
<param-name>domains</param-name>
<param-value>http://example.com</param-value>
</init-param>
</filter>
<filter>
<filter-mapping>
<filter-name>ClickjackFilterAllowList</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
도움이 되셨나요?