<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>

広すぎか?GET なら通して良い気もするけど…… foresdon.jp 以外の Origin から直接 GET 来ることあるんだっけ? :f_thinking_kyururu:

僕は、リモートからトゥートの配達だけ受けてローカルにキャッシュをもらってない時にリモートにあるオリジナルのメディアを見に行きそうだなあと思いつつAllowedOriginを*にしてみました。 さんが詳しくご存じかも。

なるほどー。カレーのひとの降臨を待ちつつ、ちょっと S3 と CloudFront のログなど眺めてみます!

@kedama @zundan アクセス元は、

・自鯖(サーバプロセス)
・自鯖(WebUI)
・他鯖のWeb
・リモートサーバ(連合先)
・クライアントアプリ

かな。

CORS意識するのはWebUIを表示するブラウザぐらいで、他はみてないと思う()

クライアントアプリは、他鯖の画像を自鯖から取得せずにリモートを直接みにいっちゃうものが結構ある(けどCORS……)。PleromaやMisskey、キャッシュしないで直接見に行かせちゃう場合あるんじゃないかな。

プロキシが間に入る場合は、S3のヘッダを隠して、プロキシがヘッダを付け直す感じ?
docs.joinmastodon.org/admin/op

proxy_hide_header 'Access-Control-Allow-Origin';
proxy_hide_header 'Access-Control-Allow-Methods';
proxy_hide_header 'Access-Control-Allow-Headers';

add_header 'Access-Control-Allow-Origin' '*'

あー。ぷれろまとかみすきーだと別 origin の WebUI から fetch なり XHR なりで直接叩いてくるパターンが有り得るかもなんですね……あと Mastodon だと、media remove 走らせてサーバー側からリモートメディアを削除しちゃうと、同じことが起こり得る?感じですかね?

フォロー

@kedama @zundan Mastodonは、人知れずMediaProxyのエントリがあって、再取得が必要なメディアのstatusではプロキシのURLを返しています。

ユーザーがプロキシにアクセスすると、RedownloadMediaWorkerを走らせて再取得を行って、本来のローカルURLにリダイレクトするという処理を行います。

この仕組みで、media removeで消しちゃったり、壊れている画像をクリックしても、ローカルのURLが返るようになっています。

クライアントアプリは、このへんを無視して、リモートを直接見に行くものがあります。

ユーザーとしては画像がちゃんと表示されて嬉しかったりするんですが、どんな画像を読まされるかわからないのと、トラッキング防止になりません。逆に、本体が対応していないメディア形式でも読めたりします。

へえぇえ!! 弊ぼっちでは過去24時間で10回くらい稼動してたようです。きっかけになったリクエストまではログだけからは見えないかあ…。

おもしろいハナシをありがとうございますになっています!w

ログインして会話に参加
Fedibird

様々な目的に使える、日本の汎用マストドンサーバーです。安定した利用環境と、多数の独自機能を提供しています。