利用者46万人・レビュー☆4(777人)のchrome拡張に潜む罠... Rails < "HTTP Origin header (http://evil.com/) didn't match request.base_url"


流れ (※ 一部表現や脚色あり)

顔文字 人物
😿(😸)
🐻 利用者
🤡 chrome拡張の開発者

🐻 < お疲れ様です。◯◯◯.hoge.comで△△△操作を試したところ、できませんでした。☓☓☓ボタン押下後、エラー表示がでます。

😿 < お疲れ様です。承知しました。調査します。

==========ログ確認===========

{"@timestamp":"2018-XX-XXT14:22:47.596+09:00","severity":"WARN","hostname":"hoge","process_id":"","message":"[666eb95c-acec-42d4-8f4c-5be6ede5aee7] HTTP Origin header (http://evil.com/) didn't match request.base_url (https://◯◯◯.hoge.com)"}
{"@timestamp":"2018-XX-XXT14:22:47.603+09:00","severity":"ERROR","hostname":"hoge","process_id":"","message":"[666eb95c-acec-42d4-8f4c-5be6ede5aee7] ActionController::InvalidAuthenticityToken"}

😿 < HTTP Origin ヘッダーがなんらかの理由で、リクエストのベースのURL (https://◯◯◯.hoge.com) と一致しなかった可能性があります。

🐻 < ???

==========軽く調査...=========== ※ 🤡= chrome拡張の開発者
🤡 < As for evil.com - it was joke and small reminder that we need take care about what we allow in our CORS headers.
=============================

😿 < 下記のようなChrome拡張を入れて、HTTP Originのheaderを書き換えていたりしますでしょうか?
https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi

🐻 < 拡張消してログイン成功したようです! 調査ありがとうございました!

😸 < ファーwwwwww

起きた問題を3行で説明

  • 管理画面上での操作がエラー
  • ログに "CSRFのtokenチェックエラー && 異なるoriginからのリクエスト"
  • 利用者曰く、原因不明...

どうしてこんなことが起こったのか?

  • 利用者がresponse headerに'Access-Control-Allow-Origin'を
    追加するchrome拡張を入れていた。

↓↓↓以下開発者の発言↓↓↓

🤡 < 私たちがCORSヘッダーで許可していることを注意する必要があることを冗談と小さなリマインダーのつもりで追加した。

🤡 < 私は、多くの人がこれについて不平を言っていることを知っているので、次の月曜日(29/05/2010)までに拡張を更新し、このフィールドを編集可能にすることを約束します!

結論

現在(2018/08/22) : \治ってねぇ!!/
GithubのSourceの該当部 : https://github.com/vitvad/Access-Control-Allow-Origin/blob/b1685e014e1bdae4d0be3ac10aa2636fe41926a0/background.js#L8

😸 < ファーwwwwww

Google Chromeの拡張を入れる時は少しだけ調べよう。
とりあえず入れました は ダメ。ゼッタイ。

ふざけた記事を書きたかっただけだとかは、断じて無いです。

参考