데스크톱과 모바일 앱은 앱 내에 내장된 브라우저로서 OAuth 2.0 전체 과정을 완료하는 데 도움을 줍니다
이 과정은 그림에 나와 있습니다
OAuth2.0 웹 1) 지정된 웹 redirectUri로 authCode를 반환합니다 (이 URI는 앱 개발자가 설정함) 2) 토큰을 변경하려면 클라이언트 식별자를 검증하기 위해 clientId와 clientSecret을 전달해야 합니다(애플리케이션 백엔드 서비스가 획득함)
위의 두 점을 주목하면, 1) 웹 앱의 redirectUri 감지가 유효하지 않기 때문입니다 2) 백엔드 서비스 클라이언트가 없기 때문에 비밀은 안전하지 않습니다 그렇다면 우리가 마주할 수 있는 공격은 아래 그림과 같은데, 악성 애플리케이션이 authCode를 가로채 AuthorizationServer에 메시지를 보내 토큰을 얻으려 할 수 있습니다. 이로 인해 토큰은 사용자의 승인 없이 다른 공식 애플리케이션 승인으로 얻어져 공격의 목적을 달성할 수 있습니다.
해결책:
1. 클라이언트가 임의 문자열인 코드 검증기를 생성하고 이 문자열을 저장합니다 code_challenge = 변환(code_verifier, [평면| S256]) 변환 메서드가 단순이라면, 코드 챌린지는 코드 검증기와 동등합니다 변환 메서드가 S256이라면, 코드 챌린지는 코드 검증기의 Sha256 해시와 같습니다 2. 인증 코드 요청에 코드 챌린지를 도입하고 코드 챌린지를 생성하는 방법을 알려주세요. 이 두 노드는 서버가 발행하는 권한 코드에 묶여 있습니다 3. 인증 코드를 획득한 후, 클라이언트는 접근 토큰과 인증 코드를 교환할 때 처음 생성된 코드 검증기를 가져옵니다. 서버는 바운드 변환 방법에 따라 코드 검증자를 계산하고, 계산된 결과를 바인드 코드 챌린지와 비교한 뒤, 일치하면 액세스 토큰을 발급합니다.
면책 조항: Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.
Mail To:help@itsvse.com