HTML 스크립트 설치 시 문제가 발생하면 어떻게 하나요?

포럼에 pure chat 스크립트를 설치하는 데 문제가 있습니다. Discourse는 보안 보호를 위해 화이트리스트 필터를 활성화하고 있기 때문입니다. 화이트리스트에 몇 개의 pure chat 링크를 추가해 보았지만, 여전히 pure chat 대화 탭이 표시되지 않습니다. 도움을 부탁드립니다. 아래는 오류 메시지입니다:

legacy.111147.js:1 Uncaught EvalError: Refused to evaluate a string as JavaScript because ‘unsafe-eval’ is not an allowed source of script in the following Content Security Policy directive:

at new Function (<anonymous>)
at Function.b.template (legacy.111147.js:1)
at Module.<anonymous> (legacy.111147.js:32)
at n (legacy.111147.js:1)
at Object.<anonymous> (legacy.111147.js:32)
at n (legacy.111147.js:1)
at legacy.111147.js:1
at legacy.111147.js:1

이 문제를 해결하는 방법을 아는 사람이 있을까요? CSP를 비활성화하면 스크립트가 정상적으로 작동합니다. 하지만 CSP를 활성화한 상태에서 정상적으로 작동하게 하는 방법은 무엇일까요?

설정 content security policy script src에 스크립트 소스를 추가하세요.

콘솔 탭에서 확인해서 해당 오류 링크를 추가했습니다 :slight_smile:

하지만 여전히 제대로 작동하지 않습니다

기능을 잘못 사용하고 있습니다. 개별 URL을 하나씩 추가할 필요 없이 도메인만 화이트리스트에 등록하면 됩니다.

@tshenry 님, 이 부분의 문구를 개선해야 하지 않을까요?

도와주셔서 감사합니다. 다시 수정해 보겠습니다.

하지만 여전히 문제가 있습니다. CSP를 활성화하면 purechat 스크립트가 표시되지 않습니다. 이미 새로운 링크 2개를 추가했는데도요.

솔직히 말씀드리면, 저는 CSP 전문가라고 자처하지 않습니다!

그럼에도 불구하고, 도메인을 화이트리스트에 등록하는 것이 이상적인 시나리오가 있고, 개별 스크립트를 대상으로 하는 것이 더 나은 시나리오가 있다고 생각합니다. 이는 화이트리스트에 등록해야 하는 스크립트의 수, 소스에 대한 신뢰도 등에 따라 달라진다고 확신합니다. 필요 시 도메인을 포괄적으로 사용할 수 있다는 내용을 가이드에 참고 사항으로 추가하겠습니다.

제공된 스크린샷의 설정은 확실히 약간 과했다기보다는, 아무것도 작동하지 않아서 모든 것을 포괄하려는 시도가 아니었을까 추측됩니다.

실험으로 제 테스트 사이트에 Pure Chat을 추가해 보았습니다. 해시를 사용하여 Chrome에서는 작동하게 만들 수 있었지만, Safari와 Firefox에는 충분하지 않았습니다. Penar에게 확인해 본 결과, 이는 [quote=“xrav3nz, post:1, topic:104243”]

4. 제3자 스크립트/서비스 통합

통합 방식에 따라 요구 사항이 다를 수 있지만, 유사하게 처리할 수 있습니다.

통합 기능의 권장 CSP 화이트리스트를 찾아 기본 CSP를 그에 맞게 확장할 수 있습니다. 단순히 Discourse에서 CSP Report Only 모드를 활성화하고, 통합 기능이 작동하도록 화이트리스트에 추가해야 하는 리소스가 무엇인지 확인하기 위해 콘솔을 관찰하는 것을 권장합니다.

Google Tag Manager나 Segment와 같은 제3자 스크립트 번들러를 사용할 때 특히 중요합니다. 이러한 번들러는 많은 제3자 또는 인라인 스크립트를 로드할 수 있기 때문입니다. (Segment나 GTM을 사용할 경우 이 정의는 가능한 한 피해야 하지만, 'unsafe-inline'를 추가해야 하는 상황이 발생할 수도 있습니다.)
[/quote]
에 언급된 대로 'unsafe-inline'가 필요한 불운한 상황 중 하나인 것으로 보입니다.


@BishopV Pure Chat을 계속 사용하기로 결정하신다면, 해당 설정에 있는 모든 항목을 제거하고 보안에 대한 비용으로 'unsafe-inline'를 추가하는 것이 유일한 선택지라고 생각합니다.

대신 Setup HubSpot chat Integration 사용을 고려해 보셨나요? 이 방식은 우리의 CSP 정책과 매우 잘 호환되는 것으로 보입니다.

어쨌든, 최악의 시나리오는 누군가가 동일한 도메인에서 20개의 고유한 URL을 하드코딩하는 것입니다…

도와주셔서 감사합니다. 이제 허브스팟이 제 해결책이 될 것 같습니다. 디스코스를 백엔드로 선택한 것이 정말 잘한 일인 것 같아요. 여기에서 많은 도움과 지원을 받고 있습니다.