익스피리언스 빌더 사이트의 CSP 및 Lightning Locker
익스피리언스 빌더 사이트에서는 콘텐츠 보안 정책(CSP) 및 Lightning Locker를 사용하여 사이트를 악성 공격 및 사용자 정의 코드 취약성으로부터 보호합니다. CSP는 사이트 페이지에 로드할 수 있는 콘텐츠의 소스를 제어하고 크로스 사이트 스크립팅(XSS) 공격으로부터 보호하는 W3C 표준입니다. Lightning Locker는 타사의 Lightning 구성 요소와 사용자 정의 코드가 브라우저의 동일한 페이지에서 안전하게 실행될 수 있도록 하는 Salesforce 아키텍처 계층입니다. 여러 보안 수준으로 사이트 보안 선택과 위험 허용 범위를 최적화할 수 있습니다.
필수 Edition
| 지원 제품: Salesforce Classic 및 Lightning Experience |
| 지원 제품: Essentials, Enterprise, Performance, Unlimited 및 Developer Edition |
Spring '19 릴리스 이후에 만들어진 새 사이트의 경우 엄격한 CSP가 기본 CSP로 설정됩니다.
CSP란 무엇입니까?
CSP는 누군가 사이트를 방문할 경우 브라우저로 보안 정책 HTTP 머리글을 정의하는 규칙의 목록입니다. 웹 브라우저에서는 이러한 규칙을 사용하여 여러 종류의 자원(스크립트, 이미지, 기타 데이터)의 알 수 없는 서버에 대한 요청을 차단합니다. 엄격한 CSP는 명시적으로 허용된 경우를 제외하고 다른 서버에 대한 요청을 차단하여 이러한 공격으로부터 가장 안전한 사이트를 만듭니다.
CSP는 사이트의 일부 및 일부가 아닌 항목을 결정합니다. CSP가 사이트의 경계를 정의하는 방식은 가장 중요한 측면 중 하나입니다. 별도의 회사 사이트에서 호스팅되는 로고 등 사이트의 도메인 이름을 통해 로드되지 않는 모든 항목은 타사 호스트로 간주됩니다. 이 CSP 접근 방식은 브라우저에서 이미 적용하고 있는 동일한 출처 정책을 따릅니다. 타사에서 호스팅하는 자료에 액세스할 수 있지만 먼저 귀사 사이트의 보안 수준을 선택해야 합니다. 그런 다음, 호스트를 적절하게 허용합니다.
Lightning Locker 정의
Lightning Locker는 사이트에 있는 타사 Lightning 구성 요소 및 head 마크업에 있는 맞춤형 코드의 보안을 향상하는 Salesforce 아키텍처 계층입니다. 이러한 타사 구성 요소와 사용자 정의 코드에는 데이터를 유출할 수 있는 보안 취약성과 해당 데이터를 사용하는 잠재적인 악성 작업이 포함될 수 있습니다.
Lightning Locker는 타사 구성 요소이든 다른 네임스페이스의 사용자 정의 코드이든 서로 데이터를 공유하거나 간섭할 수 있는지를 제어합니다. 타사 구성 요소 또는 사용자 정의 코드가 민감한 데이터를 처리할 경우 해당 자원 간의 통신이 특히 중요합니다. 예를 들어, Lightning Locker가 없을 경우 타사 구성 요소에 고객이 다른 구성 요소에 입력하는 보안 데이터를 캡처한 후 해당 데이터를 자체 서버로 보내는 JavaScript가 포함될 수 있습니다. Lightning Locker를 사용하면 다른 네임스페이스의 자원과 상호 작용하는 타사 구성 요소 및 사용자 정의 코드가 브라우저의 동일한 페이지에서 함께 실행되더라도 안전하게 실행될 수 있습니다.
Lightning Locker:
- 컨테이너를 사용하여 한 네임스페이스에 속하는 모든 타사 구성 요소를 다른 네임스페이스의 타사 구성 요소로부터 분리합니다.
- 지원되는 API에 대한 액세스만 허용하고 게시되지 않은 프레임워크에 대한 액세스를 제거하여 코딩 모범 사례를 적용합니다.
- 브라우저의 기본 보안 기능을 켭니다.
사이트에 대한 Lightning Locker는 기본적으로 켜져 있습니다. 보안 수준에 따라 모든 타사 구성 요소 및 사용자 정의 코드에 대한 Lightning Locker를 끌 수 있습니다.
보안 수준
다음 보안 수준 중에서 선택할 수 있으습니다.
| 보안 수준 | 설명 |
|---|---|
| 엄격한 CSP: 인라인 스크립트에 대한 액세스 차단 및 허용된 호스트에 대한 액세스 허용 | Spring ’19(2019년 2월) 및 그 이후에 만들어진 사이트의 기본 설정 최대 보안을 제공합니다.
|
| 보통 수준의 CSP: 인라인 스크립트 및 허용된 호스트에 대한 액세스 허용 | 적절한 보안을 제공합니다.
|
| 인라인 스트립트 및 타사 호스트에 대한 스크립트 액세스 허용 | 사이트에 추가 보안은 제공되지 않지만, 현재 설계된 대로 작업하는 것은 가능합니다.
노트 Spring '19 이전에 생성된 사이트인 경우에만 이 옵션이 나타납니다. Spring '22(2022년 2월)에는 이 옵션이 제거됩니다. |
- CSP 및 Lightning Locker 설계 고려 사항
관리자, 콘텐츠 관리자 또는 개발자는 익스피리언스 빌더 사이트의 각기 다른 보안 수준이 미치는 영향을 인지해야 합니다. 이 영향은 광범위하고 예상에서 벗어날 수 있습니다. - 익스피리언스 빌더 사이트에 타사 호스트 허용 목록을 지정할 위치
보안 수준과 관계없이 익스피리언스 빌더 사이트 외부에서 호스팅되는 이미지, 스타일 시트, 글꼴 등 모든 비스크립트 자원을 허용 목록으로 지정해야 합니다. 또한 사이트에서 외부 JavaScript 파일을 참조하는 경우 해당 원격 호스트를 허용 목록에 지정해야 합니다. - 익스피리언스 빌더 사이트의 보안 수준 선택
익스피리언스 빌더 사이트에서 스크립트를 실행할 수 있고 타사 구성 요소와 사용자 정의 코드에서 데이터를 공유할 수 있는지 여부를 제어하는 보안 수준을 선택합니다.

