v3.3.0.beta1부터 Discourse는 ‘strict-dynamic’ 콘텐츠 보안 정책(CSP)을 구현합니다. 이를 통해 수동 CSP 설정의 필요성이 사라지며, 태그 매니저 및 광고와 같은 외부 도구와의 호환성이 크게 향상됩니다.
사이트 관리자로서 당신이 해야 할 일은 아무것도 없습니다. 이 변경 사항은 자동으로 적용되며, 현재 사용 중인 외부 스크립트는 계속 작동합니다.
테마에는 변경 사항이 필요하지 않습니다. 소수의 플러그인[1]은 이 변경 사항과 호환되도록 약간의 조정이 필요할 수 있습니다(예: 1, 2).
이전에는 외부 스크립트와의 호환성을 위해 CSP를 비활성화했던 포럼은 이제 문제나 설정 작업 없이 CSP를 다시 활성화할 수 있어야 합니다.
기술적 세부 사항은 다음 토픽을 확인하세요:
현재로서는 ‘content security policy strict dynamic’ 사이트 설정을 비활성화하여 이전 시스템으로 전환할 수 있습니다. 이렇게 해야 할 이유가 있다면 알려주세요!
v3.3.0.beta3부터 ‘strict-dynamic’ 키워드는 CSP의 필수 구성 요소가 되었습니다. ‘content security policy strict dynamic’ 사이트 설정은 제거되었으며, ‘content security policy script src’ 사이트 설정은 유효한 값만 저장하도록 업데이트되었습니다.
관리자분께서는 사이트의 직원 작업 로그(https://<site_url>/admin/logs/staff_action_logs?filters=%7B%22action_name%22%3A%22change_site_setting%22%2C%22action_id%22%3A3%2C%22subject%22%3A%22content_security_policy_script_src%22%7D - <site_url>을 사이트의 기본 URL로 대체)에서 ‘content security policy script src’ 사이트 설정의 이전 값을 찾을 수 있어야 합니다.
기술적으로: register_html_builder 또는 erb 템플릿을 통해 <script> 요소를 도입하는 플러그인 ↩︎
여기서 중요한 부분은 "호스트 소스"입니다. 'unsafe-inline'은 호스트 소스가 아니므로 여전히 지원됩니다.
그럼에도 불구하고, 이 부분이 혼란스럽다는 점에는 전적으로 동의합니다. strict-dynamic의 성공적인 도입을 고려하여, 기존 시스템을 제거할 계획입니다. 그렇게 되면 목록에서 모든 호스트 소스를 자동으로 제거할 수 있으며, 관리자의 작업이 훨씬 간단해질 것입니다.
strict-dynamic는 loadScript를 통해 로드되는 원격 스크립트와 함께 작동해야 합니다. 사실, 이것이 전환의 주요 이유였습니다. 이제 모든 외부 스크립트 URL을 사전에 나열할 필요가 없습니다. 이는 특히 광고를 운영하는 사람들에게 유리하며, 광고는 종종 대량의 원격 스크립트를 가져오기 때문입니다.