강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

chvj7567님의 프로필 이미지
chvj7567

작성한 질문수

[나 혼자 레벨업] UE5 멀티플레이 게임 제작 Lv. 1 (Listen 서버 입문)

해킹 방어 강의 질문

해결된 질문

작성

·

78

0

안녕하세요. 루키스님 강의 잘 듣고 있습니다.

해킹 방어 강의 관련하여 2가지 질문드립니다.

  1. State 데이터 Set을 클라 측에서 하고 있고 서버에서는 클라 측 데이터를 기반으로 체크를 하는 것으로 보입니다. 서버 측에서 State 데이터 Set을 해야 더 안전한 것이 아닌지 질문드립니다.

  2. 노티파이 부분도 클라 측에서 확인을 하고 있는데 서버 측에서는 애니메이션 실행은 하지 않지만 실행 중인지 시간을 통해 체크 후 각 노티파이 등을 Multicast 하는 방식이 더 안전한 것이 아닌지 궁금합니다. 아니면 언리얼 프레임워크에서 해당 부분은 자동으로 해주는 부분일까요?

항상 강의 잘 듣고 있습니다. 감사합니다.

답변 2

0

Rookiss님의 프로필 이미지
Rookiss
지식공유자

[서버 측에서 클라 측 데이터를 기반으로 체크하는 것으로 보입니다]

<<
그렇지 않습니다.
State 변수를 Replication 대상으로 세팅을 하지 않았고,
그렇다고 SetState 이후 서버에 RPC로 동기화를 하지도 않습니다.
말 그대로 클라/서버 알아서 각자 관리하는 것인입니다.
따라서 서버에서도 정당한 시뮬레이션 기반으로 State를 세팅해주고 있습니다.
서버에서 (클라가 컨트롤하는 Pawn의 State)를 설정하는 것은 보안상 아무런 문제가 없습니다.

심지어 리슨서버이기 떄문에 애니메이션 코드가 없는 것이 아니라
일반 클라와 마찬가지로 동일하게 시뮬레이션을 하고 있습니다.
따라서 Notify 코드가 클라에서만 실행되는 것 또한 아니며,
서버의 판정에 따라서 중요한 부분은 처리가 되고 있습니다.

이부분이 확실하지 않으면 World를 서버로 선택해서 BreakPoint를 걸어보면 되겠죠.

0

안녕하세요, 인프런 AI 인턴입니다.
chvj7567님, 강의 잘 듣고 계시다니 기쁩니다! 해킹 방어와 관련한 질문에 대해 답변드리겠습니다.

  1. State 데이터 Set과 서버 측 처리: 서버 측에서 State 데이터를 처리하는 것은 중요한 보안 방법 중 하나입니다. 클라이언트 측에서는 조작이 가능하므로, 서버에서 클라이언트의 데이터를 검증하고 필요한 조치를 취하는 것이 중요합니다. 서버에서 State 데이터 Set을 하면 클라이언트의 변조를 방지하고, 게임의 무결성을 유지하는 데 도움이 됩니다.

  2. 노티파이 및 서버 측 애니메이션 검증: 클라이언트에서만 애니메이션을 확인하면 클라이언트의 조작에 의해 잘못된 상태가 발생할 수 있습니다. 서버 측에서 애니메이션의 실행 여부를 체크하고, 그것을 기반으로 각 노티파이를 Multicast 방식으로 전송하는 것은 더 안전한 방법입니다. 언리얼 엔진에서는 이러한 동기화 문제를 해결하기 위해 다양한 네트워크 기능을 제공하며, 일반적으로 서버는 신뢰할 수 있는 데이터 소스를 유지하는 역할을 합니다.

아래의 유사한 질문을 참조하시면 더 깊이 있는 이해에 도움이 되실 것입니다:

  1. 언리얼 서버 연동 강의 질문
  2. 클라이언트 연동 강의

위의 질문에서도 클라이언트와 서버 간의 데이터 처리 및 동기화에 대한 논의가 진행되고 있으므로 참고 부탁드립니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

chvj7567님의 프로필 이미지
chvj7567

작성한 질문수

질문하기