예를 들어 사용자가 자신의 Google 계정으로 원격 서버에 로그인 할 수 있도록하려면 THIS입니다.Gmail OAuth2 토큰 및 클라이언트 스푸핑 확인
기본적으로 클라이언트에서 access_token을 가져 와서 내 서버로 보냅니다. 서버에서 응답
https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=XXXX
의 응답을 확인하고 서버에서 인증합니다.
하지만 보안 질문이 있습니다. 악의적 인 개발자가 Gmail 로그인을 허용하는 앱을 만들고 사용자의 액세스 토큰을 저장하고이를 내 서버에서 자신의 스푸핑에 사용하면 어떨까요? 어떻게 피할 수 있습니까? 액세스 토큰을 얻은 응용 프로그램의 서명을 확인하는 방법이 있습니까?
{
"issued_to": "XXXXXXXXXXXXXX.apps.googleusercontent.com",
"audience": "XXXXXXXXXX.apps.googleusercontent.com",
"user_id": "15285874285447",
"scope": "https://www.googleapis.com/auth/plus.me https://www.googleapis.com/auth/userinfo.email",
"expires_in": 3562,
"email": "[email protected]",
"verified_email": true,
"access_type": "online"
}
그래서 아마 또는 대상 issued_to 필드가 검증을 위해 중요하다 반환
토큰 정보 같은입니까?
편집 : 나는 중간 공격에서 남자를 의미하지는 않습니다. 예를 들어 Gmail에 로그인 할 수있는 VirusX라는 게임을 만들었다 고 상상해보십시오. 추가 유효성 검사가 없으면 access_tokens를 저장하고 gmail 로그인을 사용하여 다른 앱에 액세스 할 수 있습니다. 그것은이 방법으로 해결하는 페이스 북의 API 사용
: 당신은 당신의 FACEBOOK_APP_ID를 사용하여 토큰을 요청
- 는에
- 사용자가 로그인 (페이스 북 SDK 앱 서명의 유효성을 검사) 당신은 access_token이를 얻을 보내 서버
- 서버로는 https://graph.facebook.com/me?access_token=XXXXX
- 그런 다음 서버가 토큰의 경우이 시점에서 https://graph.facebook.com/USER_ID?access_token=FACEBOOK_APP_ID|FACEBOOK_SECRET
- 호출에 호출 USER_ID를 검색 를 A FACEBOOK_APP_ID로 검색되지 않은 (비밀이 일치하지 않습니다) 그리고 당신은 내가이 정말 귀하의 질문에 대답하지 않습니다 알고
Invalid OAuth access token signature
답장을 보내 주셔서 감사합니다. 그러나 정확히 의미하지는 않습니다. 편집 된 질문 – Addev
편집 된 답변을 참조하십시오. –