728x90
게임 속에는 수많은 해커들이 있다. 개발자들은 코드 난독화, 메모리 보호 등을 이용해 해킹으로부터 게임을 보호한다.
1️⃣ 클라이언트 코드는 공개된 것과 다름 없다.
2️⃣ 클라이언트 코드/메모리는 언제나 수정할 수 있다.
즉, 서버 구조가 매우 중요하다.
서버에는 두 가지 구조가 있다. Server-based(Client-Server)와 P2P다.
✅ Client-Server
클라이언트는 모두 서버와 연결되어 있고, 서버가 그들을 관리한다. 너무 많은 요청을 한 번에 받으면 서버가 뻗을 수 있지만 보안이 좋다.
✅ P2P
서버 없이도 클라이언트끼리 서버와 클라이언트 역할을 한다. 대표적으로 테일즈런너가 이런 방식이다. 같은 게임에 있는 다른 유저의 네트워크 상황이 좋지 않으면 나까지 영향을 받게 된다. 유저는 다른 유저의 IP 주소 등을 훔쳐볼 수도 있게 된다. 보안에 취약하다.
서버 개발자는 클라이언트에서 오는 정보를 그대로 믿어서는 안된다. 반드시 검증하는 과정이 필요하다. 어느 게임에서는 길드에 기부하는 골드를 음수로 바꾸어 되레 길드 골드를 훔치는 경우도 있었다고 한다...
728x90
'공부 > 게임 서버' 카테고리의 다른 글
[게임 서버] Server와 Client의 통신, 패킷(Packet) 정보 주고 받기 (0) | 2023.02.01 |
---|---|
[게임 서버 / C# ] Socket Error (10061) : 대상 컴퓨터에서 연결을 거부했으므로 연결하지 못했습니다. (0) | 2022.10.07 |
[게임 서버/암호학] 대칭키와 비대칭키 (0) | 2022.09.30 |
[게임 서버] await 사용하기 (0) | 2022.07.11 |
[게임 서버] SetBuffer를 RecvBuffer, SendBuffer로 따로 빼내기 #2 (0) | 2022.06.21 |