JavaScript の挿入で 403 エラーが発生

このフォーラムの過去の投稿によると、デフォルトテーマの または フィールドにカスタム JavaScript コードを挿入できるはずです。しかし、試みるたびに「403 エラー」というポップアップが表示されます。管理者であるものの開発者ではない私が、たった一行のカスタム JavaScript を追加するにはどうすればよいでしょうか?

「いいね!」 2

一部のReferrer-Policyの設定により、スクリプトリソースの使用権限がない可能性があります。パブリックアクセスまたは適切な権限が設定されていることを確認してください。

私も同じ問題を抱えています。解決できましたか、@Judith さん?

<html><script></script></html> でテストしても 403 が返ってくるので、Referrer-Policy の問題なのかどうか分かりません。

残念ながら、そうではありません :frowning:

追加しようとしているものと、それがどこにあるのかについて、もう少し詳しく教えていただけますか?そうすれば、コミュニティからの回答がもっと得られるかもしれません。

「いいね!」 1

どのレベルでも失敗します。デフォルトテーマ > CSS/HTMLの編集 > 一般 > ヘッダーに移動し、実験として以下を追加してみました。

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

しかし、それさえも「403エラー」というポップアップで失敗しました。そのため、もっと凝ったことを試すことはしませんでした。

DigitalOceanに、マニュアル通りにインストールし、最新バージョンにアップデートしたものがあります。JavaScriptを使用できるようにするために、標準のインストールに関して何か変更する必要はありますか?

これはもう役に立たないと思うので、しまっておきましょう...

代わりにカスタムテーマコンポーネントとして追加してみてはどうでしょうか?

簡単な手順:

  • /admin/customize/themes に移動します
  • インストールをクリックし、次に新規作成をクリックします
  • 名前を付け、「コンポーネント」を選択します。
  • 作成
  • テーマに追加します
  • CSS/HTMLの編集ボタンをクリックして、そこで変更を加えます

そして保存します。:+1:


デフォルトテーマのヘッダーでもテストしましたが、うまくいきました。そのため、セットアップに何か異常がある可能性があります。セーフモードでトリガーしようとすると機能しますか?

お待ちください、これは聞き覚えがあります。ブラウザ拡張機能で無効にできるものはありますか?(またはプライベートウィンドウで試してみてください)コンソールにエラーの詳細が表示されていますか?

Discourse の前に Web Application Firewall (例: CloudFlare や AWS WAF) を設置していますか?クロスサイトスクリプティング攻撃として検出している可能性があります。

ヘッダーではなくヘッドはどうですか?

「いいね!」 2

これは、私が持っているテスト用の Discourse インスタンスでは 1 週間前には発生していなかったエラーですが、今週発生しています。
考えられるすべての場所を試しましたが、正直なところ、JS は閉じボディタグの直前にあるべきであり、ヘッド内にあるべきではありません。そのため、そこに配置したいと考えています(そして、それが先週機能したことです)。

403エラー モーダルが表示されるだけで、それだけです。
コンポーネントやテーマが原因ではないことを確認しましたが、意図せず変更した設定が原因かどうかはわかりません。