2013-10-15 4 views
2

JS 게임을 개발 중이며 최대한 부정 행위를 방지하고 싶습니다. 이것은 거의 불가능하다는 것을 이해하지만, 사용자가 콘솔에 들어가서 삶을 바꾸는 것을 막으려합니다. game.lives = 99;자바 스크립트 변수가 콘솔에서 변경되었는지 확인하십시오.

lives과 같은 변수가 다음과 같이 변경되면 감지 할 수있는 방법이 있습니까? 콘솔이 게임을 해킹 한 것으로 표시하고 코드 실행을 멈 춥니 다. 나는 서버 사이드 검사를 할 수 있다고 생각하지만 지연을 피하고 싶다. JS 응답이있는 경우 JS 응답을 찾고 있습니다.

답변

1

사용자가 자바 스크립트 코드 또는 변수 값을 변경하지 못하게 할 수는 없습니다. 너는 단지 그것을 더 어렵게 만들 수있다. Fisch는 모든 변수가 비공개가 될 수 있도록 클로저를 사용하여 언급했습니다. 즉시 호출 된 함수 식 (IIFE) 패턴을 조사하십시오. 이것은 많은 플러그인 스타일 코드에서 사용되며 수정을 방지하는 데 도움이됩니다.

사용자가 변수 값을 변경하려는 경우 디버그 모드에서 게임을 실행하고 중단 점에서 값을 수정하지 못하도록합니다.

1

기본적으로 모든 변수를 비공개로 설정하여 콘솔에서 액세스 할 수없는 클로저를 사용할 수 있습니다. public 변수와 메소드가 필요한 경우 공개 모듈 패턴을 사용할 수 있습니다. 여기에 대한 자세한 내용은 여기를 참조하십시오. http://www.joezimjs.com/javascript/javascript-closures-and-the-module-pattern/

+0

클로저에 중단 점을 넣고 변수를 수정하는 것이 그리 어렵지 않습니다. – zzzzBov

관련 문제