2012-06-15 3 views
2

마음에있는 시나리오에서 잘 작동하는 적절한 모델을 어떻게 만들 수 있는지 막 다른 골목에 다다 랐습니다.사용자가 Google에서 앱을 지불했는지 확인하는 가장 좋은 방법

시나리오는 다음과 같습니다. 사용자가 Google Play에서 애플리케이션을 구입합니다. 런타임에 나는 사용자 자격 증명 (현재 장치와 관련된 Google 계정)을 요청한 다음 웹 서비스로 전송합니다. 이 시점에서 백엔드 서비스는 사용자를 인증하고 실제로 해당 응용 프로그램을 구입했는지 확인한 다음 요청과 관련된 데이터 만 반환합니다. (일반적으로 런타임 기반 라이프 사이클의 어느 시점에서든 컨텐츠 기반 애플리케이션에 대해 웹 서비스에 대한 모든 요청은 항상 위 파이프를 통과해야 함을 명심하십시오).

위의 시나리오가 너무 구체적 인 이유는 다음과 같은 이유 때문입니다. - 쉽게 바이 패스 할 수있는 Auth 프로세스를 기본적으로 실행하는 대신 모든 서비스를 최종 서비스에서 관리하고 싶습니다. 무슨 말인지, 누군가가 자신의 장치에서 응용 프로그램을 디 컴파일 할 수있는 한, 코드를 검사하고, 필요에 따라 다시 컴파일하며, 장치가 루팅되었거나 응용 프로그램과 관련된 모든 데이터를 지울 수있는 경우 모든 파일에 대한 모든 권한을 가지기 만하면됩니다. 단순히 안드로이드의 응용 프로그램 설정에서 "데이터 지우기"옵션을 누르면 ..... 나는 위에서 설명한 것과 다른 가능한 시나리오를 보지 못합니다.

이제 내 모든 문제는 Google이 Google의 개발자 API 및 Google+ API를 모두 사용하는이 특정 시나리오를 좋아하지 않는 것으로 보입니다.

그래서 제가 언급 한 시나리오와이 문제를 해결할 방법에 관해 제공 할 수있는 귀하의 의견, 생각 및 관련 자료에 진심으로 감사드립니다.

+0

-------- 누구? –

답변

1

사용할 수있는 API에 대해 알지 못합니다. LVL을 사용해 보시지 않겠습니까? LVL이 실제로 안드로이드 마켓에서 다운로드되었는지 확인하십시오. 유료 앱인 경우 사용자는 반드시 결제해야합니다.

디 컴파일과 관련하여 Proguard를 사용해보십시오. 100 % 완벽한 솔루션은 아니지만이를 깨뜨리기는 꽤 어렵습니다.

이제 콘텐츠를 제공합니다. 다른 사람이 내 콘텐츠를 훔치지 않게하려면 암호화하고 저장하십시오. 웹 서비스에서 작동하는 꽤 훌륭한 암호화 메커니즘을 사용할 수 있습니다. 이렇게하면 깨지기가 매우 어렵습니다.

+0

"클라이언트를 신뢰하십시오"모델은 "클라이언트를 신뢰하지 마십시오"모델보다 훨씬 더 잘 알려져 있습니다.이 모델은 구현에 도움이되는 질문입니다. –

+1

나는 어떤 모델도 제안하지 않았다. 당신이 가질 수있는 대안에 대해 생각하고 있습니다. 게다가 항상 누군가를 믿어야합니다. 우리 모두 그렇게 해. –

1

LVLProGuard을 사용하는 것이 잘못된 이유는 무엇입니까? 이 도구는 라이센스 확인 및 리버스 엔지니어링과 관련된 문제를 해결하기 위해 특별히 고안되었습니다.

그리고 유료 앱을 무료로 받으려고하는 수천 명의 사람들에 대해 너무 걱정하지 마십시오. 앱이 좋은 것이라면 어쨌든 많은 매출을 올릴 수 있습니다.

0

제안서를 올바르게 읽은 경우 사용자의 개인 정보를 크게 침해 한 것으로 보이며 확실히 Google의 ToS를 위반하게됩니다. 사용자가 개인 자격 증명을 제공하는 이유는 무엇입니까? 그들은 누구에게도 주어서는 안되므로, 왜 당신이나 당신의 시스템을 그들과 신뢰해야합니까? 해킹 당했고 자격 증명이 도난 당했을 경우에도 책임을지게됩니다.

관련 문제