2012-05-12 3 views
0

나는 안드로이드 애플리케이션과 인앱 구매를 가지고있다.안드로이드와 PHP 웹 서비스 사이의 보안

php 파일을 통해 내 원격 데이터베이스에 구매 한 user_id를 게시하고 싶습니다.

일부 영리한 사용자는 네트워크를 청취하고 내 PHP 서비스의 주소를 볼 수 있습니다. 그들은 내가 보내는 변수를 찾아 낼 수도 있습니다. 물론 user_id를 암호화하는 방법을 알고 있습니다. RSA 또는 AES 중 하나를 사용하여 수행 할 수 있습니다. 하지만 RSA 공개 키는 앱에 보관해야합니다.

제 질문은 더 똑똑한 공격자가 쉽게 공개 키를 가져 와서 사용자 ID를 암호화하고 내 웹 서비스에 게시 할 수 있다는 것입니다. 이 시나리오를 어떻게 막을 수 있습니까?

+0

어쨌든 사용자 기기의 PII를 서버에 제출하려는 이유는 무엇입니까? 라이센스/DRM을위한 것이라면 [Google Play Application Licensing] (http://developer.android.com/guide/market/licensing/)을 아직 확인 했습니까? –

+0

예 이미했습니다. 인앱 구매를 사용하고 있으므로 인앱 구매 라이센스 가이드를 따랐습니다. 이 가이드에서는 구매 한 항목을 확인하기 위해 Google Play에 문의하는 것이 애플리케이션 설치시 한 번만 수행되어야한다고 분명히 말합니다. 사용자가 앱을 열 때마다 확인할 수 없습니까? – tasomaniac

+0

추가 정보, 대부분 유료 앱용 가이드입니다. 내 앱은 무료이며 인앱 구매가 있습니다. – tasomaniac

답변

2

나는 내 문제를 해결했습니다. 내가 필요한 것은 서버 측에서 서명 확인을하는 것입니다. 서명과 서명 된 데이터를 내 서버로 보내면됩니다. 아무도이 데이터를 속일 수 없습니다. 그들은 Google에서 직접오고 있습니다. 서명 확인이 완료되면 방금 사용자를 내 mysql 테이블에 추가했습니다.

+0

"서명 확인이 완료되면 방금 사용자를 내 mysql 테이블에 추가했습니다." - 악의적 인 사용자가 확인을 수행하지 않고 mySQL 테이블에 사용자를 추가하는 것을 막을 수있는 방법은 무엇입니까? – jww

+0

그들은 단지 mySQL 테이블을 편집 할 수 없습니다. PHP 파일은 서명 확인을 수행 한 다음 사용자를 테이블에 추가합니다. – tasomaniac