inflearn logo
강의

Course

Instructor

[Solo Leveling] UE5 Multiplayer Game Development Lv. 1 (Introduction to Listen Server)

해킹 방어 강의 질문

Resolved

153

chvj7567

7 asked

0

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

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

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

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

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

c++ unreal-engine ue-blueprint

Answer 2

0

Rookiss

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

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

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

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

0

communityai8509

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

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

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

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

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

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

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

PCG 스플라인 메시에 메시가 2개 배치되는 경우?

0

6

1

2주차 개념#12 트리 순회

0

14

2

백준 사이트 서비스 종료

0

38

3

안녕하세[요. 김용일입니다.

0

25

1

안녕하세요. 김용일입니다.

0

66

1

저는 저 노란색 미리보기 창이 안뜹니다

0

12

1

5.6버전 Networking Insights 실행안됨 문제에 관하여

0

24

1

프로젝트 질문 문의

0

37

1

백준사이트가 종료된다고 합니다.

0

215

2

맵핑부분..

0

26

2

백준 서비스 종료

9

685

1

Rider대신 VS를 써도 괜찮나요?

0

105

2

Claude Code Pro구독하고 있는 상태에서 크레딧 결제, 사용문의

0

164

2

Polyreduce 퍼센트 값이 적용되지 않음 + 다른 이슈

0

19

1

ABP "스테이트의 시퀀스 플레이어에 따른 자동 규칙"질문드립니다.

0

34

1

사용하시는 툴 질문 드립니다.

0

32

2

토큰 사용량 및 인증 관련해서 질문드립니다.

0

121

2

OAuth 방식 문의

0

101

2

C#을 사용하는 장점이 무엇인지 궁금합니다.

0

95

1

Event Destroyed와 차이

0

40

1

C++ 로 포팅

0

85

2

Null Crash 에러 문의

0

92

2

클라이언트에서 닉네임 변경시

0

86

2

Map을 Watermil로 선택 후 게임 시작시 캐릭터 위치 변경 안됨

0

90

1