2014-06-13 5 views
0

게임 API를 만들었으며 해당 API는 다른 도메인에있는 완전한 클라이언트 측 javascript + html5 응용 프로그램에서 사용됩니다.API를 잘못 사용하지 못하도록 보호

모든 CORS 문제를 해결할 수 있으며 정상적으로 작동합니다.

해당 API에는 사용자 점수를 제출하는 메소드가 있습니다. 사용자가 게임을 끝내면 자바 스크립트 앱이 최종 점수를 API에 제출합니다.

하지만 문제는 그렇게하는 것이 안전할까요? 일부 사용자는 가짜 점수를 서버로 보내기 위해 API를 오용 할 수 있습니다.

다른 한편으로 점수를 생성하기 위해 웹 애플리케이션 전체 클라이언트 측을 생성하는 것이 안전합니까? 사전에

감사

+0

클라이언트에서 데이터를 가져 와서 서버에서 신뢰하는 것이 안전합니까? – TheNorthWes

+0

클라이언트 측 스크립트가 점수를 생성하고 API를 통해 서버로 보내는 경우, 아니요 - 안전하지 않습니다. 누구나 그걸 조작하고 자신의 점수를 만들어 보낼 수 있습니다. –

답변

0

완전히 클라이언트 측을 확보 할 수없는 실행되는 게임에 대한 간단한 "점수를 제출"API; 게임 회사가 게임을 저작권 침해로부터 보호하기 위해 지출 한 금액을 고려해보십시오. 그러나 이러한 보호는 정기적으로 닦아 놓습니다.

게임 코어가 충분히 결정적이라면 클라이언트가 액션 스크립트를 제출 한 다음 해당 성적표를 처리하여 (게임 코어 서버 측을 다시 실행하여) 실제 점수를 결정할 수 있습니다. 보너스로, 다른 플레이어가 고득점 자의 게임을 다시 볼 수있게하는 중간 단계입니다. 라이브 스크립트를 다운로드하고 라이브 플레이어 입력 대신 성적표를 사용하여 게임 코어를 다시 보냅니다. 귀하의 운영자, 자연스럽게).

게임이 숨겨진 정보 (예 : 페이스 북 또는 무단 스택에있는 카드)에 크게 의존하는 경우 클라이언트 컴퓨터에서 해당 정보를 완전히 삭제하고 API 호출을 사용하여 플레이어가 발견 한 것을 표시해야합니다 그들. 그렇지 않으면 플레이어는 딜레마에 직면했을 때 "마술처럼"올바른 결정을 내릴 수 있습니다.

게임이 플레이어의 숙련도에 크게 의존하는 경우, 오히려 하수도가 많은 크릭이됩니다. 궁극적으로 멀티 플레이어 1 인칭 슈팅 게임에서 목표 로봇, 벽시계 등을 감지하는 것과 같은 문제로 변질됩니다. arms race은 바이러스/바이러스 백신 군대 경주에 필적합니다.

관련 문제