<AllowedOrigin>*</AllowedOrigin><AllowedMethod>GET</AllowedMethod>
広すぎか?GET なら通して良い気もするけど…… foresdon.jp 以外の Origin から直接 GET 来ることあるんだっけ? :f_thinking_kyururu:
<AllowedOrigin>*</AllowedOrigin><AllowedMethod>GET</AllowedMethod>
広すぎか?GET なら通して良い気もするけど…… foresdon.jp 以外の Origin から直接 GET 来ることあるんだっけ? :f_thinking_kyururu:
@zundan なるほどー。カレーのひとの降臨を待ちつつ、ちょっと S3 と CloudFront のログなど眺めてみます! @noellabo
@kedama 僕は、リモートからトゥートの配達だけ受けてローカルにキャッシュをもらってない時にリモートにあるオリジナルのメディアを見に行きそうだなあと思いつつAllowedOriginを*にしてみました。 @noellabo さんが詳しくご存じかも。
・自鯖(サーバプロセス)・自鯖(WebUI)・他鯖のWeb・リモートサーバ(連合先)・クライアントアプリ
かな。
CORS意識するのはWebUIを表示するブラウザぐらいで、他はみてないと思う()
クライアントアプリは、他鯖の画像を自鯖から取得せずにリモートを直接みにいっちゃうものが結構ある(けどCORS……)。PleromaやMisskey、キャッシュしないで直接見に行かせちゃう場合あるんじゃないかな。
プロキシが間に入る場合は、S3のヘッダを隠して、プロキシがヘッダを付け直す感じ?https://docs.joinmastodon.org/admin/optional/object-storage-proxy/
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' '*'
@noellabo @zundan あー。ぷれろまとかみすきーだと別 origin の WebUI から fetch なり XHR なりで直接叩いてくるパターンが有り得るかもなんですね……あと Mastodon だと、media remove 走らせてサーバー側からリモートメディアを削除しちゃうと、同じことが起こり得る?感じですかね?
@kedama @zundan 他鯖のWebってのが、PleromaとかMisskey。これはブラウザによる参照なので影響受ける可能性ある。そもそもMastodonの新オーディオプレイヤーとか関係ないから、今回は大丈夫だけど、何かでひっかかることはあるかもしれない。
むしろ、ブロックした方がいい案件という話もある。
直接参照だとユーザーがいつアクティブなのかトラッキングできてしまうので、それを防ぐ意味もありまする。
@kedama @zundan Mastodonは、人知れずMediaProxyのエントリがあって、再取得が必要なメディアのstatusではプロキシのURLを返しています。
ユーザーがプロキシにアクセスすると、RedownloadMediaWorkerを走らせて再取得を行って、本来のローカルURLにリダイレクトするという処理を行います。
この仕組みで、media removeで消しちゃったり、壊れている画像をクリックしても、ローカルのURLが返るようになっています。
クライアントアプリは、このへんを無視して、リモートを直接見に行くものがあります。
ユーザーとしては画像がちゃんと表示されて嬉しかったりするんですが、どんな画像を読まされるかわからないのと、トラッキング防止になりません。逆に、本体が対応していないメディア形式でも読めたりします。
@noellabo @kedama へえぇえ!! 弊ぼっちでは過去24時間で10回くらい稼動してたようです。きっかけになったリクエストまではログだけからは見えないかあ…。
senooken JP Social is a social network, courtesy of senooken. It runs on GNU social, version 2.0.2-beta0, available under the GNU Affero General Public License.
All senooken JP Social content and data are available under the Creative Commons Attribution 3.0 license.