[回帰分析] 許可された src ドメインでの iframe 埋め込みが壊れる

こんにちは。allowed_iframeshttps://www.tickcounter.com を追加しましたが、このスクリプトはまだ表示されません。

<div style="left:0; width:100%; height:0; position:relative; padding-bottom:25%; margin:0 auto">
<iframe src="https://www.tickcounter.com/widget/countdown/5847336" style="top:0; left:0; width:100%; height:100%; position:absolute; border:0; overflow:hidden" title="My countdown"></iframe>
</div>

エラーログには何も表示されていません。

許可した別のドメインの異なる埋め込みiframeでも同様に失敗しました。

前回試したとき、おそらく6ヶ月から1年前に、同じソースドメインからのまったく同じ種類の埋め込みiframeは機能しました。現在は Discourse v3.3.1 +5 (stable branch) を使用しています。

テスト合格ブランチの最新バージョンでは、iframeは問題なく埋め込まれます。設定したstyleおよびtitle属性はDiscourseによって削除されることに注意してください。ただし、widthおよびheight属性は設定できます。たとえば、次のようになります。

<iframe src="https://www.tickcounter.com/widget/countdown/5847336" width="100%"></iframe>

投稿に移動してから、ブラウザの開発者ツールの「要素」タブを開くと何が見えますか?

開発者ツールの「コンソール」タブを開いた場合はどうですか?エラーはありますか?

:thinking: うーん。これも期待どおりに動作しているようです。

admin - すべてのサイト設定 - 許可されるiframe

プレビューア:

処理済み投稿:

「いいね!」 1

返信ありがとうございます。

<div> class="regular contents"><div> class="cooked"></div><section class="post-menu-area clearfix"><nav class="post-controls expanded">

うーん、いくつかエラーがあります。

リソースの読み込みに失敗しました: net::ERR_CONNECTION_REFUSED
beacon.min.js:1

しかし、これは私が使用しているDNSブラックリストのようです。VPN経由で接続するとエラーはありません。そして、まったく異なるコンピューターとネットワークを持つ別のユーザーが、この同じ問題を私に報告したというのは偶然にしてはできすぎているように思えます。

OK Firefox は別のコンソールメッセージを表示します。

パーティション化されたCookieまたはストレージへのアクセスが「https://www.tickcounter.com/widget/countdown/4471981」に提供されました。これは、サードパーティのコンテキストで読み込まれ、動的状態パーティション化が有効になっているためです。
[詳細はこちら]

また、iframe コードをスケルトンの静的 HTML ファイルに貼り付けてブラウザで開いたところ、iframe が正しく読み込まれたことも言及しておくべきです。

OK、このiframeは以前は機能していましたか?Cloudflareを使用していますか?もしそうなら、スピードブレイン(Speed Brain)を無効にすると何か影響があるか確認してみてください。(有効になっている場合)これは比較的新しい機能だと認識しています。

「いいね!」 2

こんにちは、いいえ、Cloudflareは使用していません。

「いいね!」 2

はい、iframeは機能させることができます。あなたのフォーラムで何かをブロックしているようです。

うーん、そのようですね。しかし、Discourse は /logs/ にエラーを表示すべきではないでしょうか?

サーバー上でそれをブロックするようなものは何も実行していないはずです。ホスティングプロバイダーのDNSを /etc/resolv.conf で使用していましたが、この問題に変更はありませんでした。

エラーが発生している場合のみです。適切な機能として何かによってブロックされている可能性があります。これが機能しなくなった時期に何が変更されたかを特定しようと試みるのが私の推測です。コンテンツセキュリティポリシーの変更が影響したのではないかと思います。

DNSブロックリストを使用していると問題が発生するため、使用しないということでしょうか?

「いいね!」 2

または
https://www.tickcounter.com/ を許可されたiframe設定に追加しましたか?

「いいね!」 3

悪評のあるドメインをブロックするDNSサービスです。しかし、それは問題ではありません。なぜなら、1) VPN経由で接続すると別のDNSを使用しますが、この問題は継続します。2) この問題を報告してくれたユーザーは全く異なるセットアップを使用しています。3) DNS設定は私のLAN用であり、Discourseサーバーには適用されていません。Discourseサーバーは適切なHTMLをサーバーサイドで生成できていません。4) このHTMLファイルはiframeを正しく読み込みます。

<!DOCTYPE html>
<html lang="en">

<head>
  <meta name="description" content="Webpage description goes here" />
  <meta charset="utf-8">
  <title>Change_me</title>
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <meta name="author" content="">
</head>

<body>

<div style="left:0; width:100%; height:0; position:relative; padding-bottom:25%; margin:0 auto">
  <iframe src="https://www.tickcounter.com/widget/countdown/5847336" style="top:0; left:0; width:100%; height:100%; position:absolute; border:0; overflow:hidden" title="My countdown"></iframe>
</div>

</body>
</html>

おお、それが原因でした。最後の / が欠けていました。
どうもありがとうございました!

Discourseで何かが変更されたようです。前回試したときは https://www.tickcounter.com を追加しましたが、その時は機能しました。私の意見では、使用されている正規表現ロジックか、設定の説明のどちらかを調整する必要があります。なぜなら、次のように書かれているからです。

Discourseが投稿で安全に許可できるiframe srcドメインプレフィックスのリスト

「ドメインプレフィックス」と聞くと、ドメイン名やサブドメインを思い浮かべますが、どちらも / を含みません。あるいは、より複雑なiframe src URLに対してより正確なロジックを使用するつもりなら、次のように書かれるべきです。

Discourseが投稿で安全に許可できるiframe src URLプレフィックスのリスト

「いいね!」 3

リンクを追加すると、フィールドの下に別のスラッシュが必要であるというエラーメッセージが表示されるはずです。

「いいね!」 3

2ヶ月以上前(セキュリティ修正がマージされる前)に追加されたリンクが問題です。当時、エラーメッセージは表示されず、デフォルトのリンクにも3番目の「/」は含まれていませんでした。
これは少なくとも2番目のサポートトピックです。

「いいね!」 3

そうでしたか。どこかで既存のリンクが壊れてしまったということですね。:thinking:

「いいね!」 1

既存の入力を確認し、機能しなくなったリンクについて管理者に通知することは可能ですか?

「いいね!」 3

私にとって、最大の混乱の原因は、「ドメイン」と呼ばれているのに、実際にはURLであるという事実でした。

「いいね!」 2

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.