Chrome에서 Google 계정으로 SEDE에서 인증 할 때 연결이 안전하지 않다고 경고합니다.

Dec 13 2020

여기 에서 Stack Exchange 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 비트가 그 뒤에있는 헤더를 올바르게 읽지 못했습니다. .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 voor anderen.

Rene이 질문에 게시 한 것과 동일한 메시지입니다.

Android에서 Chrome 사용.

1 Ollie Dec 14 2020 at 03:46

나도 재현했습니다. Google 로그인이 복잡 할뿐만 아니라 "Login using Stack Overflow"버튼을 클릭하면이 오류가 발생합니다.

내 Google 계정에 로그인 또는 로그 아웃했습니다.