4

oEmbed仕様には、URLのoEmbedコンテンツを見つける2つの異なる方法が記載されています

  1. WebサイトのAPIエンドポイントを認識し、それをGETパラメーターを介して、宣言したURLパターンと一致する場合に情報が必要なURLを渡します。
  2. <link rel="alternate" type="application/json+oembed" ... />(またはtext/xml+oembed)HTMLヘッダーのおかげでoEmbedバージョンのURLを検出します。

2番目の方法は、プロバイダーのリスト全体を保存および維持する必要がないため、より一般的なようです。さらに、プロバイダーのリストは、少数のアクターのみが存在する集中型インターネットの兆候です。このアプローチはほとんどスケーラブルではありません。

ただし、他の誰かが利用できるようにしたリソースを解析できるWebサイトでは、最初のアプローチの使用法を見ることができます。たとえば、ウェブサイトFooからoEmbedバージョンのビデオページを提供できます。ただし、主にセキュリティ関連のいくつかの理由から、Xの作成者がそれで問題がない限り、「リソースXを解析できます」と言う人を信用しません。これにより、アプローチ2に戻ります。

だから私の質問は:私はここで何を逃したのですか?oEmbedを処理する最初の方法の使用は何ですか?たとえば、オンザフライでインターネット上のほぼすべてのリソースを検出する一般的な方法がある場合、oohEmbedのようにエンドポイントとパターンの全リストを保存(および最新の状態に維持)するのはなぜですか?

非常に密接に関連する質問として、同時に尋ねられる可能性があります(間違っている場合は訂正してください):oEmbedコンテンツの中央エンドポイントを提供しない場合はどうなりますか?各URLの「?version = oembed」パラメータ。標準バージョンの代わりにoEmbedバージョンを返しますか?

4

3 に答える 3

4

私が正しく思い出せば、両方のメカニズムをサポートすることは、採用を促進するのに役立つと私たちが考えた妥協案でした。すべての応答本文にマークアップ(ほとんどのクライアントには関係ありません)を追加するよりも、単一のエンドポイントを追加するように大規模なWebプロパティを説得する方がはるかに簡単です。それは実用的な選択でした。

長期的には、Eran Hammer-Lahavが発見を再発明するのではなく、発見の周りで行っていた作業の一部を活用することを計画しました(残念ながら、再び)。残念ながら、彼のアイデアはまだあまり注目されておらず、Webにはこの種のことを行うための優れた標準化された方法がまだありません。

于 2011-11-03T00:31:35.463 に答える
1

私はここで答えを見つけたいと思っていましたが、他のみんなは私たちと同じように混乱しているようです。私の意見では、オプション1を使用する利点は、潜在的に高価なhtmlリクエストの後にjsonリクエストが続くのではなく、1つのjsonリクエストのみを使用することです。事前に作成されたoEmbedプロバイダーのリストのパターンに一致しない場合のフォールバックとして、オプション2をいつでも使用できます。

于 2011-09-28T04:04:05.423 に答える
0

OEmbedディスカバリーは、セキュリティ上の大きな懸念事項です。たとえば、WordPressには、サポートされているOEmbedプロバイダーのホワイトリストがあります。

インターネット上のすべてのランダムなURLがOEmbedコードをトリガーできると仮定します。つまり、誰もがあなたのサイトをハッキングできるということです。

手順:

  1. 新しいサイトを作成し、OEmbedディスカバリーを追加します。
  2. サイトのフォームにURLを投稿します。今、あなたのサイトは私に代わってOEmbedを実行します。
  3. エクスプロイト:

    • サービス拒否(DOS)による:たとえば、URLをターピットにリダイレクトするか、1GBのjson応答をフィードします。
    • クロスサイトスクリプティング(XSS)による:他の人が見ることができるページにランダムなHTMLを挿入します。
    • XSSを介して管理者のセッションCookieを盗むことにより、攻撃者はCMSにログインしてファイルをアップロードし、さらに多くを悪用できるようになります。

それは最大のXSSであり、それを止めることはほとんどありません。行うべき唯一の正しいことは、適切なエンドポイントをホワイトリストに登録することです。これは、oEmbedエンドポイントが明示的にリストされていることです。

スケーラブルなものが必要な場合は、www.noembed.comとwww.embedly.comをお勧めします。これらは、OEmbed自体を実行しないさまざまなサイトにOEmbedサポートを提供します。

于 2013-03-24T12:22:26.773 に答える