2011-09-20 4 views
0

Android 앱을 개발 중입니다. 사용자가 버튼을 눌렀을 때 Android 기기의 고유 식별자와 다른 데이터를 데이터베이스에 추가하고 싶습니다.Android : 데이터베이스와의 보안 연결

문제는 : 다른 응용 프로그램/웹 사이트 등이 내 데이터베이스에 데이터를 저장할 수 없도록 방지하는 방법은 무엇입니까?

SSL 연결에 대해 생각하고 있었지만 다른 응용 프로그램에서도 SSL 연결을 사용하여 내 데이터베이스에 연결할 수있었습니다. 다음으로 내 마음에 떠오른 것은 창조이다. 소금을 사용하고 고유 ID + 다른 데이터 + 소금을 암호화하고 암호화 된 정보가 일치하면 db 서버에서 확인한다.

하지만 이론적으로 안드로이드 앱을 리버스 엔지니어링 할 수 있으므로 '소금물'을 찾아서 암호화 된 정보를 내 DB로 보낼 ​​수 있습니다.

어떻게 정보를 db에 저장하고 내 응용 프로그램에서만 사용할 수 있도록 만들 수 있습니까?

답변

1

이 데이터가 기기 단위 인 경우 처음 실행하면 '쿠키'가 생성됩니다. 예 : 서버와의 후속 통신에서 사용하는 충분히 긴 임의의 ID입니다. 그리고 누구도 트래픽을 스누핑 할 수 없도록 SSL을 사용합니다.

임의의 문자열을 생성하려면 UUID을 사용하십시오.

Settings.Secure.ANDROID_ID을 사용할 수 있지만 누군가 프로토콜을 역으로 변경하면 악용 사례를 피기 백하는 앱을 만들 수 있습니다. 있을 법하지는 않지만 행할 수있는.

OTOH, 사용자 당 데이터 인 경우 로그인 시스템을 만들어야합니다.

+0

답변을위한 Thnx. 문제는 데이터베이스에 장치를 추가하고 싶다는 것입니다. 다른 앱이 내 데이터베이스에 기기를 추가하는 것을 원하지 않습니다. 단지 내 앱이 그 일을 할 권리가 있습니다. 또한 내 자신의 응용 프로그램에 대해서만 액세스 할 수있는 데이터베이스에서 데이터를 가져오고 싶습니다. 로그인 시스템이 좋지는 않습니다. – ruta

+0

장치를 신뢰할 수 없으므로 사용자를 신뢰해야합니다. 따라서 로그인 시스템이 필요합니다. 주위에. –

+0

나는 이것에 동의한다! 하지만 내 데이터베이스에 게시하거나 데이터를 가져 오는 요청이 내 응용 프로그램에서 제공되는지 확인하기위한 솔루션을 찾고 있습니다. 다른 사람이 아니라. 사용자가 데이터베이스에 연결되어 있다는 사실을 알고있는 경우조차도 필요하지 않습니다. – ruta