JavaScript 삽입 시 403 오류 발생

이 포럼의 이전 게시물에 따르면, 기본 테마의 또는 필드에 사용자 정의 JavaScript 코드를 삽입할 수 있어야 합니다. 그러나 시도할 때마다 "403 오류"라는 팝업이 표시됩니다. 개발자는 아니지만 관리자 권한이 있는 저로서는 이 한 줄의 사용자 정의 JavaScript를 어떻게 추가할 수 있을까요?

일부 Referrer-Policy로 인해 스크립트 리소스를 사용할 권한이 없을 수 있습니다. 공개 접근이 가능한지 또는 다른 적절한 권한이 설정되어 있는지 확인하십시오.

저도 같은 문제를 겪고 있습니다. @Judith 님, 수정할 수 있었나요?

<script></script>로 테스트를 해봐도 403 에러가 발생해서, Referrer-Policy 문제인지 확실하지 않습니다.

아쉽네요 :frowning:

무엇을 추가하려 하고, 어디에 추가하려 하는지에 대해 좀 더 자세한 내용을 알려주실 수 있을까요? 그러면 커뮤니티에서 더 많은 답변이 나올지도 모릅니다.

어떤 단계에서든 실패합니다. 기본 테마 > CSS/HTML 편집 > 일반 > 헤더로 이동하여 실험으로 다음을 추가해 보았습니다.

<script>
alert("Test");
</script>

그런데 이것조차 "403 오류"라는 팝업 메시지와 함께 실패하여, 더 복잡한 시도는 아예 하지 않았습니다.

DigitalOcean에 교재에 따라 정확히 설치하고 최신 버전으로 업데이트한 환경이 있습니다. JavaScript를 사용하려면 표준 설치 설정에서 무언가를 변경해야 하나요?

이건 결국 유용하지 않을 것 같으니 그냥 이렇게 처리해 둘게...

대신 커스텀 테마 컴포넌트로 추가해 볼 수 있을까요?

간단한 방법:

  • /admin/customize/themes로 이동하세요.
  • 설치를 클릭한 다음 새로 만들기를 선택하세요.
  • 이름을 지정하고 ‘컴포넌트’를 선택하세요.
  • 만들기
  • 테마에 추가하세요.
  • CSS/HTML 편집 버튼을 클릭하고 그곳에서 변경 사항을 적용하세요.

그리고 저장하세요. :+1:


또한 기본 테마 헤더에서도 테스트해 봤는데, 거기서는 잘 작동했습니다. 따라서 설정에 뭔가 특이한 점이 있을 수 있습니다. 안전 모드에서 트리거를 시도해 보면 작동하나요?

잠깐, 이게 익숙한 것 같은데요. 끄실 수 있는 브라우저 확장 프로그램이 있나요? (또는 개인 창에서 시도해 보세요) 그리고 콘솔의 오류에 대한 더 자세한 정보가 있나요?

Discourse 앞에 Web Application Firewall(예: CloudFlare 또는 AWS WAF)이 있나요? 크로스 사이트 스크립팅(XSS) 공격으로 잘못 감지하고 있을 수 있습니다.

헤더 대신 헤드(Head)라고 하는 것은 어떨까요?

일주일 전에는 제가 가지고 있는 테스트용 Discourse 인스턴스에서 이런 오류가 발생하지 않았는데, 이번 주에는 발생하고 있습니다.
가능한 모든 위치를 시도해 봤지만 솔직히 말하면, JS는 head가 아니라 닫는 body 태그 바로 앞에 배치하는 것이 맞으므로, 그곳에 배치하고 싶습니다(그리고 지난 주에는 그렇게 했을 때 정상적으로 작동했습니다).

403 오류 모달만 팝업될 뿐입니다.
컴포넌트나 테마 때문이 아니라는 것을 확인했지만, 제가 실수로 변경한 설정 때문일 가능성은 확실하지 않습니다?