2013-02-17 2 views
1

자바 스크립트에서 멋진 웹 소켓을 사용하여 내 멀티 플레이어 게임을위한 PHP 서버와 통신하고 있습니다.클라이언트와 서버를 통한 보안 명령

하지만 지금은, 난 그냥 PHP까지 자바 스크립트와 같은 방식에서 PHP-> 자바 스크립트가 데이터를 암호화 할 수있는 방법

Sending: {"command": "login", "data": {"id" : "1575","md5" : "6bd8937a8789a3e58489c4cfd514b1a7","username": "densortekat"}} index.php:58 
Sending: {"command": "inroom"} index.php:58 
Reciveing: {"command": "roombg","data" : "shop.png"} index.php:83 
Reciveing: {"command" : "NEWUSER","data" : { "username" : "densortekat","seat_id" : "29","room_id" : "9"}} index.php:83 
Sending: {"command" : "move", "data" : { "seat_id" : "53"}} index.php:58 
Reciveing: {"command": "move", "data" : {"username" : "densortekat", "seat_id" : "53"}} index.php:83 
Sending: {"command": "request_trade", "data" : "densortekat"} index.php:58 
Reciveing: {"command":"trade", "data": {"username":"densortekat"}} index.php:83 
Sending: {"command":"ping"} 

내 질문은, 같은 원시 소켓 (JSON)을 보내, 그래서 다른 사람은 할 수 없습니다 무슨 일이 일어나고 있는지 알아?

답변

1

자바 스크립트가 클라이언트 측에서 활성화되었지만 실제 문제는 사용자가 전송하는 데이터를 알 수있는 방법이 없다는 것입니다. &은 서버에서 클라이언트에게 수신되는 것이고 자바 스크립트가 아닌 사용자.

나는 악의적 인 사용자로서 js 코드에서 계산 한 데이터가 아닌 위조 된 데이터를 보낼 수 있습니다. "이 데이터는 신뢰할 수있는 js VM에 의해 생성되었으며 사용자가 위조/조작하지 않았습니다."라는 인증서가있는 클라이언트로부터 데이터를 수신 할 방법이 없습니다.

3

html5 Websocket with SSL 참조 - 초기 페이지가 HTTPS (SSL/TLS) 인 경우 웹 소켓도 포함됩니다.

+0

네, 알지만, 사용자는 여전히 { "명령": "___ something___"} 자신을 보내고 클라이언트 -> 서버를 조작 할 수 있습니다. –

+0

오, 글쎄 그건 당신의 질문이 무엇을 요구했는지 생각하지 못했습니다. 아마도 당신은 그것을 재 형성해야 할 것입니다. –

+0

@kim : 그것은 클라이언트를 신뢰하는 기쁨입니다. 당신은 더 복잡한 성가신 행위를하기 위해 난독 화 방법을 생각해 낼 수는 있지만 결코 고칠 수는 없습니다. 클라이언트/서버 관계의 경계를 그리면 게임을 신뢰할 수 있도록 서버에서 중요한 계산을 수행 할 수 있습니다. – bobince

관련 문제