2010-05-10 5 views
11

자바 스크립트와 HTML5에 대한 최근의 과장된 제안을 통해 나는 클라이언트 사이드의 js 코드를 어떻게 보호 할 수 있었 을까? 물론, 그것을 혼란 케하는 것은 가능하지만, 그것은 단지 조금 더 어렵게 만들 것입니다. 또한 높은 점수를 서버에 제출하는 게임의 경우 서버에 보내기 전에 점수를 수정하는 것이 매우 쉽지 않습니까? 플래시 파일조차도 디 컴파일이 가능하지만, 난독 화가 가능하고 JS에서 데이터를 수정하는 것만 큼 플래시 디 컴파일이 쉽지 않다는 점을 알 수 있습니다. 파이어 버그와 같은 플러그인을 사용하면 쉽게 수행 할 수 있습니다. 나는 이것에 대한 모든 사람들의 견해를 알고 싶다.자바 스크립트의 보안/코드 보호

답변

8

자바 스크립트가 클라이언트에서 구문 분석되는 경우 결코 안전하지 않습니다. 항상이 무엇인지 찾아내는 방법이 될 것입니다. 며칠 전 나는 packed javascript를 풀어주는 도구를 보았습니다. 그래서 당신이 정말로 할 수있는 유일한 일은 "못생긴"변수 이름을 사용하는 것입니다 (또는 실제로 javascript packer가 "좋은"변수 이름을 짧은/추한/

게임 결과를 보호하려면 클라이언트가 임의의 결과를 보낼 수 없도록 일부 게임 로직을 서버로 이동해야합니다.

요약 : 자바 스크립트 코드에 비밀을 넣지 말고 클라이언트에서 오는 내용을 신뢰할 수 없습니다. 양식이나 자바 스크립트를 통해 생성되었거나 제출되었는지 여부에 관계 없습니다.

+0

감사합니다. 비록 내가 게임 논리의 일부를 움직인다 할지라도, 서버로 보내지는 데이터를 생성하는 알고리즘은 여전히 ​​매우 개방적이다. 또한 게임과 관련하여 특히 HTML5를 채택 할 때 이것이 큰 요인이 아닐까요? 왜/어떻게 사람들은 플래시가 빠져 나갈 것이라고 예측하고 있습니까? – BlueSilver

+1

플래시는 거의 자바 스크립트만큼 안전하지 않습니다. 좋은 actionscript 디 컴파일러가 있습니다. 가능하지 않더라도 서버에 보낸 요청을 여전히 스니핑 할 수 있습니다. 게다가, 많은 플래시 게임은 보상 등을위한 것이 아니라 재미를위한 것입니다. 그래서 사람들이 속임수를 쓰는지 여부는 전혀 중요하지 않습니다. – ThiefMaster

+0

반복적으로 묻는 것에 대해 유감 스럽지만 HTML5 채택의 큰 요인이 아닙니까? 또한 요청을 스니핑하는 것은 소스를 보는 것만 큼 쉽지 않습니다. 게다가, 높은 점수를 얻으면 돈을 가져올 수있는 플래시 게임 포털이 있으므로 속임수가 중요합니다. – BlueSilver

0

당신은 서버에 높은 점수를 보내는 게임의 경우 자바 스크립트 및 위조 요청을 수정하기가 너무 쉽다고 말합니까?

경우를 제외하고 클라이언트에서 일부 암호화를 사용하면 스크립트를 분석하는 것조차도 거짓 요청을 보내지 않고도 그러한 요청을 위조하는 것이 가장 쉬운 방법입니다. 서버와 브라우저간에 보내는 모든 것을 컴퓨터에서 쉽게보고 분석하고 변경할 수 있습니다.