Chromeは、Googleアカウントを使用してSEDEで認証するときに、接続が安全ではないことを警告します

Dec 13 2020

ここでStackExchange Data Explorerのログインページに移動し、[ Googleを使用しログイン]ボタンクリックすると、ログインせず、代わりにプライバシーを保護するChromeメッセージが表示されます。

送信しようとしている情報は安全ではありませんサイトは完全に安全ではない接続を使用しているため、あなたの情報は他の人に見えるようになります。

昨日は警告を表示せずにこれが機能したと確信しているので、Chromeが一晩で厳しくなったか、リビジョンが2020.8.27.79のままであるため、SEDEで構成が変更されました(プルリクエストはいつデプロイされますか?)。

開発者コンソールでネットワークトラフィックを調べると、次のように表示されます。

  • POSTリクエストURL: https://data.stackexchange.com/user/authenticate
    • 応答:302とロケーションヘッダー: https://accounts.google.com/o/oauth2/auth?client_id=[blah]&scope=openid+email&redirect_uri=http%3a%2f%2fdata.stackexchange.com%2f[more blah]&response_type=code

そして、302が返されると、次の呼び出しがブロックされます(注意深い読者はこれが来るのを見ました):

  • GETリクエストURL: https://accounts.google.com/o/oauth2/auth?client_id=[blah]&scope=openid+email&redirect_uri=http%3a%2f%2fdata.stackexchange.com%2f[more blah]&response_type=code
    • 応答302:場所: http://data.stackexchange.com/user/oauth/google?state=[blah]&code=[more blag]&scope=email+openid+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email&authuser=0&prompt=none

その最後のロケーションヘッダーは、HTTPSプロトコルの代わりにHTTPプロトコルを使用します。

/ user / authenticateのPOSTルートがプレーンHTTPではなく安全なプロトコルを使用するようにこれを変更できますか?

私はどういうわけか、AccountController.csのこの行が今は違うものを返すことを期待しています:

private string BaseUrl => Current.Request.Url.Scheme + "://" + Current.Request.Url.Host;

そのBaseUrlがここに追加されるからredirect_uri です

アップストリームプロキシがSSLオフロードを引き継いだ場合、最初にCurrent.Request.Url.Scheme使用したHTTPSプロトコルが返されない可能性があります。しかし、おそらく他の原因により、そのスキームは以前のものではなかったのかもしれません。

Chromeでこれを再現できるのは私だけのようです。これが私のマシンのローカルである場合でも、悪用されるのを待つのではなく、潜在的なセキュリティリスクを事前に修正することをお勧めします。

リスクを受け入れて続行すると、正常にログインできます。

回答

8 NickCraver Dec 14 2020 at 04:44

これに対する修正が展開されました-レポートとPRにも感謝します!

注:ご想像のとおり、ロードバランサーでTLSを終了し、組み込みのASPネットビットがその背後にあるヘッダーを正しく読み取っていませんでした。.NET Coreではこれは解決されていますが、Stack Exchange Data Explorerはまだその機能を備えておらず、現時点ではその作業を実行するための時間が割り当てられていません。

5 Luuklag Dec 13 2020 at 16:41

私が複製しました。

最初にGoogleを使用して登録したとき、すべてがうまくいきました。

次にログアウトすると、登録したばかりのGoogleアカウントを使用してログインすると、次のメッセージ(オランダ語)が表示されました。

De gegevens die je wilt sturen、zijn niet beveiligd Omdat de site een verbinding gebruikt die niet volledig is beveiligd、zijn je gegevens zichtbaar vooranderen。

これは、質問に投稿されたルネと同じメッセージです。

AndroidでChromeを使用する。

1 Ollie Dec 14 2020 at 03:46

私も再現。Googleログインが不安定であるだけでなく、[スタックオーバーフローを使用してログイン]ボタンをクリックすると、次のエラーがスローされます。

Googleアカウントにログインまたはログアウトしました。