トピックの埋め込みに影響を与えるドメイン解決の問題

トピック埋め込みに影響を与える可能性のあるドメイン解決の問題があります。

  1. トピック埋め込みシステムは、トピック埋め込みURLを解決するためにFinalDestinationに依存しています(こちらを参照)。

  2. FinalDestinationは、SSRFDetectorを介してURLのホスト名をIPに解決します(こちらを参照)。

  3. FinalDestinationは、実際の要求のためにURIをExconに送信します(こちらを参照)。

これは、たとえば次のような一部のトピック埋め込みURLが

"https://opensource.org/blog/osi-response-to-ntia"

次のようなGETリクエストのためにExconに送信されることを意味します。

"https://[2604:a880:800:a1::2f0:a001]/blog/osi-response-to-ntia"

このリクエストはタイムアウトします。元のURLのExcon.getはタイムアウトしません。

Meta では問題ないようです。

説明から推測すると、DNS ルックアップを行う際にサーバーが IPv6 レコードを解決している可能性があります(私たちはそのために getaddrinfo を使用しています)。しかし、それに接続しようとすると失敗します。

それは、ip6 アドレスを試して失敗し、次に ip4 アドレスにフォールバックするためかもしれません。現在、FinalDestination#resolve にはそのようなフォールバック ロジックはありません。

「いいね!」 2