2012-06-16 1 views
0

사용자 데이터베이스와 최고급 데이터베이스를 유지 관리하기 위해 PDO PHP 스크립트와 함께 MySQL을 사용합니다. 사용자가 안드로이드 응용 프로그램의 새 최고 점수를 획득하면 , 나는 서버로 전송 :MySQL 데이터베이스/PDO PHP 스크립트를 악용으로부터 보호하려면 어떻게해야합니까?

https://domain.com/phpscript.php?user=username&newhighscore=highscore 

여기에 사용자 이름과 최고 점수가 변수입니다. 모든 웹 브라우저에서이 URL에 액세스 할 수 있습니다. 누군가 내 응용 프로그램을 디 컴파일하면 내 데이터베이스의 위치를 ​​알 수 있고 최고 점수를 위장 할 수 있습니다. URL에 대한 난독 화 및 암호화는 항상 되돌릴 수 있기 때문에 아마도 옵션이 아닙니다.

이러한 URL을 보호 할 수있는 방법이 있습니까? 그렇다면 Android 앱만 브라우저가 아닌이 페이지에 액세스 할 수 있습니까?

+0

당신은 난독 처리 및 암호화를위한'에 의해 무슨 뜻 이죠에 조금 더 설명 할 수 URL은 항상 되돌릴 수 있기 때문에 아마도 옵션이 아닙니다. ' –

+0

@dark crow 내 Android 앱에서 base64로 URL을 인코딩하거나 AES로 암호화 할 수 있지만 앱의 어딘가에 키를 저장해야합니다. 내 응용 프로그램을 디 컴파일하는 사람은 여전히 ​​실제 URL을 얻기 위해 되돌릴 수 있습니다. –

+0

여기에 설명 된대로 SSL을 사용하지 않는 이유는 무엇입니까? http://blog.crazybob.org/2010/02/android-trusting-ssl-certificates.html –

답변

0

https://domain.com/phpscript.php?user=username&newhighscore=highscore으로 전화를 걸면 사용자의 최고 점수를 업데이트해야합니다.

  • 당신이 애플 리케이션 다른 전화의 첫 시작에 : 당신은 "이 페이지에 액세스 할 수 있습니다 만 내 안드로이드 애플 리케이션"여기에 몇 가지 아이디어가 있습니다와 의미 할 것입니다 -

    당신은 인증의 일종 필요 일부 토큰 교환을 용이하게하는 스크립트. 이 토큰을 앱과 서버 측 DB에 저장하고 확인 토큰으로 사용합니다 (예 : hash(encrypt("user=username&newhighscore=highscore",key=token,iv=salt)+salt)

  • 이 인증 체계의 한 부분으로 전화 ID를 사용하는 것처럼 ABC는 임의의 소금과 XYZ 뭔가 되 고 https://domain.com/phpscript.php?user=username&newhighscore=highscore&salt=abc&auth=xyz

+0

'이 토큰을 앱에 저장하십시오. '- 진정 안전한가요? 적어도 다른 사람들의 데이터를 남용하는 것은 더 이상 가능하지 않지만, 앱에서이 토큰을 검색하는 쉬운 방법이 없습니까? 어떤 식으로 저장 하시겠습니까? SharedPreferences? --edit-- 또한 ​​재설치 나 여러 장치를 막을 수 있습니까? 새로운 설치 또는 다른 장치가 새로운 토큰을 생성합니다. –

+0

** 아무 것도 ** 안전합니다. 당신이 원하는 것은 그것을 충분히 안전하게 만드는 것입니다, 그래서 최고 점수를 위조하는 것은 그만한 가치가 없습니다. 장치에 토큰을 저장하는 것은 아무 것도하지 않는 것보다 훨씬 안전합니다. 공격자는이 사용자의 토큰을 추출 할 수 있지만 다른 사용자는 토큰을 추출하지 못할 수 있습니다. 동일한 사용자 이름으로 여러 기기에 설치를 허용하는 경우 이미 일부 비밀번호 메커니즘이 필요합니다. 또는 앱을 다운로드하고 "내 사용자 이름이 XYY이며 글로벌 최고 관리자의 사용자 이름이됩니다"라고 말할 수 있습니까? –

관련 문제