2011-09-22 2 views
1

데이터베이스 요청을 처리하는 백엔드가 있습니다. 내 앱은 보안상의 이유로 데이터베이스와 직접 대화하지 않습니다.iOS에서 백엔드에 대한 통신을 인증하십시오.

내 응용 프로그램 만 내 서버의 백엔드와 통신하도록하려면 어떻게해야합니까? 다른 사람들이 내 백엔드에 질의하여 데이터에 액세스하려고하지 않습니다. 나는 단지 내가 만든 앱을 원한다. Oauth와 같은 것을 추가하거나 certs를 사용합니까?

iOS 앱 (또는 일반 앱)이 백엔드와 대화하는 가장 좋은 방법은 무엇입니까?

답변

0

iOS 장치에 설치된 응용 프로그램이 서버에 대해 어떻게 인증되는지 묻습니다.

사용자를 어떻게 식별합니까?

사용자를 식별 할 수 있으면 프로그램이 처음 서버에 연결하여 사용자 이름/패스를 제공하고 "비밀"토큰을 얻을 수 있습니다. 이 토큰을 사용하여 백엔드에 액세스 할 수 있습니다. 그 토큰을 저장할 수 있습니다.

앱에 모든 종류의 키를 제공하면 모든 설치와 동일하며 앱에서 쉽게 가져올 수 있습니다.

+0

사용자가 무엇을 의미합니까? 일부 앱에는 사용자가 없기 때문에 애널리틱스 또는 기타 데이터를 저장하기위한 것이므로 백엔드를 보호하기위한보다 일반적인 방법을 찾고 있습니다. 나는 의사 소통을 위해 앞뒤로 토큰을 사용하는 것에 대해 생각하고 있지만 그 다음에는 누구나 토큰을 요청할 수 있습니다. – Mike007

1

는 Applicasa에서 모든 응용 프로그램은 그래서 단지 당신의 애플 리케이션 (자신의 공간에 각각 하나씩) DB 이야기는 "공간"을 가지고 www.applicasa.com

당신은 OAuth를 같은 인증 메커니즘을 사용할 수 있습니다
0

. 아니면 자신 만의 것을 만들 수 있습니다. 비밀 토큰/키를 갖는 것만 큼 간단 할 수 있습니다. 또한 간단하게 유지하거나 더 복잡하게 만들 수 있습니다. 즉 토큰과 매개 변수로 해시를 생성하여 토큰 자체를 보내지 않고 토큰 및 요청 매개 변수로 계산 된 해시 등을 생성 할 수 있습니다.

그러나 api 토큰을 비밀로 유지할 방법이 없습니다. 공격자가 앱을 디 컴파일 할 수 있기 때문에 코드를 검사하고 API 키를 찾으십시오. 일부 http 헤더를 검사 할 수 있지만 요청 헤더를 위조하는 것은 매우 간단합니다. 따라서 요청이 iOS 기기에서 이루어지는 것을 보장 할 수는 없습니다.

Apple이 개발자 인증서 등으로 서명 한 설치 과정에서 무언가를 저장할 수있는 방법을 제공하면 iOS 장치에서 실제로 신뢰할 수있는 무언가를 유지할 수 있습니다. 그러나 결국 누군가는 인증 시스템을 해킹하기 위해 네트워크 트래픽을 탐지합니다.

매우 복잡한 일을 할 수 있지만 요청이 항상 기기에서 발생한다고 보장 할 수는 없습니다.