2013-07-16 3 views
2

누군가 내가 올바른 방향으로 나를 가리킬 수 있는지 궁금합니다.모바일 앱 점수 확인

iOS 및 Android에서 실행되는 모바일 앱을 보유하고 있으며 웹 사이트/서비스에 점수를 제출하여 최고의 플레이어를위한 상금을드립니다.

웹 서비스는 플레이어가 제출 한 점수가 실제로 게임을하고 있는지 확인해야하며 테이블을 높이기 위해 부스트 된 점수를 제출하는 것이 아닙니다.

이것을 달성하는 가장 좋은 방법은 무엇입니까? 내가 제대로 질문을 이해한다면

+0

부스트 스코어를 제출하면 무엇을 의미합니까 ?? 플레이어가 점수를 수동으로 보내고 있습니까? 아니면 점수를 보내기 위해 실제로 게임을해야합니까? – PaulG

+0

그래, 그 웹 서비스로 나는 당신이 웹 요청을 제출할 수있는 커맨드 라인 유틸리티를 많이 알고 있기 때문에 당신이 좋아하는 점수를 만들 수도있다. 보통 게임은 점수를 생성하고 웹 요청을 시작한다. 기술적으로 여러 장소에서 동일한 요청을 수행 할 수 있습니까? –

+0

그러면 실제 플레이어를 식별하기 위해 일종의 키 또는 토큰이 필요합니다. 나는 직장에서 우리 웹 서비스에서 이것을 자주 사용하고 아무런 문제가 없었습니다. 키를 한 번만 변경하여 안전하고 답장을 보내고 다음에 점수 제출을 할 때 동일한 키를 클라이언트 코드가 반환하도록 할 수 있습니다. – PaulG

답변

0

실제 플레이어를 식별하려면 키 또는 토큰을 사용해야합니다. 서버에서 계정을 만들면 해당 플레이어를 고유하게 식별하는 토큰을 되돌려 보냅니다. 매번 웹 서비스를 사용하여 점수를 제출하고, 토큰이 유효하고, 다른 토큰을 보내고, 다음 제출을 기대하고 있는지 추적합니다. 어떤 이유로 든 잘못된 토큰을 다시 보내면 오류 문자열을 반환하거나 단순히 점수를 업데이트하지 마십시오.

귀하의 서비스에 액세스하는 계정의 로그를 유지해야합니다. 그러면 누군가가 귀하의 WS를 엉망으로 만들고 있는지, 그리고 어떤 점수가 합법적이지 않은지를 알아낼 수있는 경우 (이 경우 매우 의심 스럽습니다. 토큰을 사용하는 경우) 적절한 조치를 취할 수 있습니다.

+0

기본적으로 사용자 이름/비밀번호 콤보를 기반으로 권한을 부여하고 새 액세스 토큰을 반환 한 다음 각 요청 후에 이전 작업을 기반으로 새 계정을 계산합니다. 또한 시간 등을 사용하여 데이터를 기록하면 각 게임의 평균 시간을 알 수 있기 때문에 피할 수있는 활동을 발견 할 수 있습니다. –

+0

예. 웹 서비스로 전송되는 필드는 문자열 사용자 이름, 문자열 암호, int 점수, int lenghtOfGame, 문자열 토큰 등이 될 수 있습니다. 매번 다시 보내는 토큰을 무작위로 생성 할 수 있습니다. 다음에 어떤 토큰을 기대하는지 항상 확인하십시오. 토큰은 실제 사용자가 아닌 토큰을 추적하는 클라이언트 (장치의 게임)이기 때문에 원하는만큼 길고 복잡 할 수 있습니다. 당신이 원한다면 암호화 할 수 있습니다. – PaulG

0

, 내 생각은 :

각 사용자는 서비스에 통과 필요로하는 응용 프로그램에 알려진 자신의 토큰을 가져야한다. 또한, 응용 프로그램은 점수 + 날짜 + 서버에서 확인할 수있는 임의의 문자열의 MD5 해시 값을 보내야합니다.

+0

Paul/Kiwi 감사합니다.하지만 수동으로 인증을 제출하고 토큰을 잡는 것을 막을 수있는 방법은 무엇입니까? 어쩌면 제가이 작업을 복잡하게 만들었지 만, 안드로이드 APK를 쉽게 풀 수 있다는 것을 알고 있습니다. 웹 서비스 –

+0

키/토큰을 하드 코딩하지 마십시오. 또는 코드에서만 사용할 수있는 암호화 키를 사용하여 암호화 할 수 있습니다. – PaulG