Skip to content

Instantly share code, notes, and snippets.

@KisaragiEffective
Last active April 18, 2021 11:28
Show Gist options
  • Save KisaragiEffective/c487991c941fcd46eafaf447d18a7e98 to your computer and use it in GitHub Desktop.
Save KisaragiEffective/c487991c941fcd46eafaf447d18a7e98 to your computer and use it in GitHub Desktop.
Wikimedia Commons、T273741の原因とその解決

Wikimedia Commonsの1枚の画像に20%のトラフィックが集まる T273741 ・User-Agent: "" ・Referer: "" ・主にインドから ・IPに規則性は見られない

  1. Mitron TV (インドにおけるTikTokの代替)、Say Nameste (インド版Zoomの代替) がそのファイルをインターネットへ接続されているかどうかを調べるためにゲットする。Say Namasteはビデオの接続をチェックするために。

  2. ファイルを改名してはどうか?

  3. >>2 Commonsはできるだけファイルを改名しない、なぜなら意図せず外部の利用者を混乱させるおそれがあるからだ。 「それを消して誰が叫ぶか」というチェック方法は時には有効だが、この場合それは必要ない。他の人は前に利用者によって異なるファイルを返すように提案したことがある。それは外部リンクを壊さない。改名するよりも手間がかかるが、それはより効率的かもしれない。(どのようにファイルが使われているかにもよるが。)

  4. gerrit:663004: refererとUAが共に指定されていないクライアントからの該当アクセスを403でカット

  5. 興味をもってくれてありがとう。昨日言ったとおり、私たちは原因がインドで人気なモバイルアプリにあることを特定している。開発者にコンタクトをとって、今は返信を待っているところだ。その間、あまりにもリクエストが多いので、私たちはリクエストを〔ステータス403で〕拒否することにした。特定するプロセスで、リストに乗っていないアプリもこのファイルを利用していることが分かった。興味がある人が居るかもしれないので、特定するに至ったプロセスを表示する:

  1. ヘッダーはそれがモバイルアプリであることを示していた。User-AgentとRefererから特定したところ、IPv6が大半で、それがモバイルアプリであることを示していた。
  2. 地理的情報をISPから特定しようとしたが、パターンがないことが明白だった。接続元はインドの全体に散らばっていた。
  3. リクエストの量から、一日中 (夜遅くでさえ) 人気のあるアプリであると判断した。2020年12月31日にそれが顕著だったので、チャットやソーシャルメディアのたぐいだと判断した。
  4. そして私たちは気がついた。インドが中国製のインターネットサービスとウェブサイトをブロックしていることに。この中にはユーザーから指摘されたように、TikTokも入っている。
  5. 〔4から、〕インドで人気のチャット、ソーシャルメディアのアプリを調べた。特に、4の検閲以降に人気になっているアプリに着目した。
  6. そしてそのアプリをダウンロードして、スプラッシュ・スクリーンとして使われていたり、あるいはアプリの中で使われていないか確かめた。そしてこの件にかんして助けてくれたコミュニティの皆さんに対して感謝を。
  7. だが、6は成功しなかった。スプラッシュ・スクリーンにもアプリの中にもなかったためである。コミュニティも同様の結果を報告した。
  8. ならば、表示はしないがゲットしているという推論にたどり着く。これはコメントで指摘された。
  9. その段階で私たちは次のようなことを推論していた:
  • インドで人気があるチャット、ソーシャルメディアアプリ
  • それはUser-AgentとRefererを-にしている
  • それはCommonsからイメージをゲットしているが表示しない。

10.アプリを絞り込むために、接続を監視することにした。一つ一つのアプリを起動して、確かめたが特に不審な点はなかった。それを全てのアプリで行って、次のクエリで接続を監視した: 〔省略〕 11. そして特定のアプリを開いたときにクエリがヒットした。〔ヘッダには〕User-Agent '-'が指定されていて、IPも一致していた。 12. そのアプリが起動時にイメージを取得していることが分かった。そして私たちの仮説、「イメージをゲットしているが表示しない」が確かめられた。 13. 正しいアプリかどうか確かめるために、DNSのクエリを監視するためのサーバーを建てた。起動した後にログが表示されたので、それで合っていると分かった。

  1. ブロックはアプリ側に分かっているのか?

  2. >>6 それはないと思う、今彼らにコンタクトをとろうとしている、だがメールでやり取りすることは難しそうだ。全てのチャンネルにメールを送ったのだが、自動返信で電話番号を聞いてくるだけだった。そのことをCEOにもツイッターのDMで話した。これ以上は私の管轄外だと思う。ブロックはちゃんとタスクにリンクし、理由を説明しているので、だれかが責任をもって私たちに連絡してくるだろう。

  3. 接続はインドの祝日のときに特に多くなっている。8月2日、9月5日、11月14日、12月31日、1月12日から14日など。

  4. >>7 よし!開発者に連絡することに成功した。そして私たちの推論が正しいことを認め、アプリのアップデートを迅速に提供することを約束した。ブロックは解除してもいいだろう、アプリのユーザーに有害な影響をもたらさないように。こんなことが起こらないようにパッチをマージしたままにしておいてもいいかもしれない。

  5. turniloでみてみたら、アップデートが配布された後にはだいぶ接続が落ち着いた。より長期で観測して、落ち着いたままならこのタスクを閉じようと思う。

  6. 何が起こったかニュースで読みたい人へ: https://www.vice.com/en/article/qjpmyx/why-is-this-flower-on-wikipedia-suddenly-getting-90-million-hits-per-day

  7. >>9 開発者のコミュニティはコード例で使うための画像を必要としていると思う。http://example.com みたいな。まあ、それを提供するのはout of scopeだろうが。ただ、Commonsには https://commons.wikimedia.org/wiki/Example_images といったカテゴリがある。

  8. >>12 https://placeholder.com/ がその役割を果たせる。

  9. これは香港でインターネットミームになったっぽい。EQSINに悪く影響したからかな。UAについては結論のまえにもうちょっと掘り下げる必要がある。

  10. UAの話はm:User-Agent_policyを参照。最後の文章は特に大事だ。

  11. [closed this task as Resolved] 問題は完全に解決し、このタスクを開けておく必要がなくなった〔ので閉じる〕。問題を早急に解決したアプリの開発者に拍手!

  12. [Change 663004 abadoned] 問題は別の方法で解決された。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment