테마 구성 요소의 "extend content security policy" 값이 잘못됨

증상: 3.4로 업데이트한 후 포럼 전체가 “Oops” 오류를 표시했습니다. 더 나쁜 것은 로그가 이 문제에 대해 완전히 침묵했다는 점입니다.

script-src: 'unsafe-eval' https://redacted.example.com 값이 있는 "security policy 확장"을 가진 테마 컴포넌트가 있었습니다.

이 값에 공백이 포함되어 있어 액션 디스패처에서 예외가 발생했고, 이로 인해 포럼 전체가 충돌했습니다.

ActionDispatch::ContentSecurityPolicy::InvalidDirectiveError (Invalid Content Security Policy script-src: \"'unsafe-eval' https://redacted.example.com\". Directive values must not contain whitespace
 or semicolons. Please use multiple arguments or other directive methods instead.)

가장 중요한 것을 잊을 뻔했습니다. 세이프 모드가 작동하지 않았습니다!!

5개의 좋아요

이 문제에 대해 추가로 확인하여 다시 알려드리겠습니다. 3.4로 업그레이드하기 전에 사용하시던 Discourse 버전은 무엇이었나요?

2개의 좋아요

그것은 3.3.3이었습니다.

Hey @michaeld, FIX: invalid CSP directive sources should allow site to boot with valid CSP directives - Pull Request #31256%EC%9D%84 - discourse/discourse - GitHub 통해 최신 main에 수정 사항을 병합했습니다. 이제 tests-passed와 stable에서도 사용할 수 있습니다.

CSP 지시어 처리 방식의 이러한 변경은 Rails의 보안 패치 백포트(backport)에서 비롯되었습니다. PR에서 이 부분에 대해 더 자세히 설명했습니다. :slight_smile: 이제 Discourse는 CSP를 생성하기 전에 이러한 값을 필터링합니다.

Safe mode에 관해서는, JavaScript 쪽 기능만 비활성화하기 때문에 이 데이터는 서버 측에서 처리되므로 이번에는 도움이 되지 않았을 것입니다.

5개의 좋아요

이 주제는 마지막 답변 후 3일 자동으로 닫혔습니다. 더 이상 새로운 답변을 할 수 없습니다.