2011-04-13 3 views
1

간단한 온라인 멀티 플레이어 게임을 쓰고 있습니다. 그것은 내 서버에 게임에 대한 통계를 저장하기 위해 몇 가지 HTTP 요청 (다른 프로토콜을 사용하지 않아도 됨)을 보내는 것을 포함합니다.내 서버에 요청하는 데 origninal 클라이언트 만 사용되는지 어떻게 확인합니까?

문제는 게임이 P2P이고 통계가 내 서버로 전송되므로 가짜 통계를 보내서 속임수를 쓰는 것이 가능하다는 것입니다. 나는 속임수를 쓰는 고객에게 면역을시키는 것이 불가능하다는 것을 알고 있습니다. 그래서 이런 일이 발생할 가능성을 최소화하는 좋은 방법은 무엇입니까? 서버와 클라이언트간에 고유 한 보안 키를 협상하여 요청이 진짜인지 확인하십시오.

거의 모든 독점 프로토콜이 조만간 리버스 엔지니어링된다는 것을 알고 있지만 키를 생성하는 데 약간의 시간이 소요된다면 어리석은 게임에서 속임수를 쓸 가치가 없다고 생각했습니다.

또는 더 좋은 방법이 있습니까?

답변

4

모든 것은 통계의 유형에 따라 다릅니다. 각 클라이언트가 다른 클라이언트에 대한 부분 통계 및 전체 통계를 제출할 수 있다면 불일치를 감지하는 서버 측 유효성 검사 메커니즘을 작성할 수 있습니다.이 경우 여러 클라이언트가 과거에 얻으려는 노력이 필요합니다.

이러한 메커니즘을 설계 할 때 클라이언트의 소스 코드 에 대한 완전한 액세스 권한을 서버가 가지고 있다는 가정하에 작업해야하며 단일 시스템에서 여전히 무시할 수없는 메커니즘을 만듭니다. 사기꾼. 결과 메커니즘을 사용할 수없는 경우 (일반적으로 효율성 때문에) 효율성을 위해 거래 보안을 시작할 수 있지만 거래가 무엇인지, 치어 리더가 사용할 수있는 방법을 알고 있어야합니다. 당신이 이후에 로그의 비 실시간 분석에 의해 그러한 속임수를 탐지 할 수있는 충분한 데이터를 기록하려고 시도하면 에있는에있는 사실을 잡기위한 차선책입니다.

+0

* 모든 사람이 속일 때이 접근법이 작동하지 않지만 여전히 흥미로운 아이디어입니다. 깨달음에 감사드립니다! – Philip

관련 문제