2011-09-03 2 views
0

PHP/MySQL 웹 서버에서 데이터를 가져 오는 Android 애플리케이션이 있습니다. 데이터 자체는 민감하지 않습니다. POI가있는 경우 숫자의 지리적 데이터입니다.하지만 타인이 유용하게 사용할 수 있습니다. 내 웹 사이트에 대한 액세스를 내 Android 애플리케이션에만 제한 할 수있는 방법

현재, 내 응용 프로그램의 라인을 따라가 someting를 수행하여 데이터를 가져옵니다 : 반환 http://myserver.url.com/data.php?getinfo=a_zip_code

모든 데이터는 XML로 반환됩니다. 내가 원하지 않는 것은 누군가가 자신의 데이터 요청을함으로써 시스템을 남용 할 수 있다는 것입니다.

내 propsal는 GET 요청 보내기 MD5 (사용자 이름 + 날짜 + 소금)

에 따라 키를 생성하는 것입니다

http://myserver.url.com/data.php? 
getinfo=a_zip_code&username=$username&key=AABBCCDDEEFFAABBCCDDEEFF 

내가 다음 서버에이 과정을 반복 할 수 있습니다 해시 경우 일치하면 데이터를 반환 할 수 있습니다.

  • 사용자 이름 - 데이터베이스에
  • 날짜를 사용자를 조회하는 데 사용 - 매일
  • 소금의 키를 변경하려면 - 키를 생성하는 다른 사람을 중지합니다.

나는 달성하고 싶은 일을하는 좋은 방법인가, 아니면 더 잘 어울리는 다른 방법이 있습니까?

답변

0

저는 키로 당신에게 알려진 변수를 사용할 수 있다고 생각합니다 - md5없이. 스크립트에 게시하고 결과를 얻으십시오. 다른 방법은 안드로이드 장치 개인 번호를 게시하고 PHP 스크립트에 정의하는 것입니다.

+0

이전 방법을 사용하면 변수가 알려지면 누구나 액세스 할 수 있습니다. 해시를 사용하면 스니핑 된 키의 유용성은 일정 기간 동안 만 유효합니다. (나는 심지어 날짜를 시간 대신에 바꿀 수있다). 가해자는 해시가 어떻게 구성되었는지 알지 못합니다. – Nigma

0

내가 게시 한 방법이 적합하다고 생각합니다. 그러나 모든 보안 질문과 마찬가지로 이것은 많은 보안이 필요한 보안과 관련됩니다. 내 웹 서버가 내 응용 프로그램이 구문 분석 할 JSON 데이터를 반환하기 때문에 비슷한 상황에 직면했습니다. 다시 말하지만, 민감한 것은 아니지만 누군가가 사용하기를 원하지 않는 것입니다. 우리 같은 문제에 대한 해결책은 아주 많다는 것을 알아 두십시오. 응용 프로그램이 모든 데이터에 액세스 할 수 있기 전에 웹 사이트에 "로그인"할 수도 있습니다. 아니면 일종의 토큰 시스템을 설정할 수도 있습니다. 그것은 당신에게 달려 있지만, 단단한 아이디어가있는 것처럼 보입니다.

+0

또는 내가 직면 한 문제에 대해 "충분히 견고한"아이디어가 있다고 말해야합니다. 다시 말하지만, 그것은 모두 친척입니다. – Vinay

0

먼저 HTTPS를 사용하고 있는지 확인하십시오. 둘째로, 당신의 열쇠가 완전히 비밀리에 의존하지 마십시오. APK는 디 컴파일 될 수 있으며 키 (문자열)를 쉽게 발견 할 수 있습니다.

관련 문제