멀티 플레이 프로그래밍을 할때 해킹을 방지하기위한 방법중의 하나인 클라이언트 검증 함수
프로그래밍은 가능하면 서버를 통하여 계산이 이루어져야하며
만일 클라이언트에 노출되어 수정이 가능한 데이터가 있다면 해당 데이터를 검증한후 전송할 수 있도록 해야함.
예를 들어 슈팅게임에서 무기마다 발사 속도를 BP에서 조절할 수 있도록 변수를 노출시켰을때.
어떠한 프로그램을 통하여 해당 변수가 저장되는 메모리의 주소를 알아내고 값을 변경한다면 해킹이 가능하게 된다.
해당 변수가 사용될 함수는 클라이언트가 서버로 요청하여 실행할 수 있도록
UFUNCTION(Server, Reliable, WithValidation) 을 사용한다.
위처럼 매크로를 선언하고 _Validate 접미어가 붙은 함수를 CPP에서만 선언하여 검증 함수를 사용 한다.
이때 검증함수의 반환형은 bool 형태이며 검증하는 값이 true일경우 문제없이 프로그램이 실행되나
실행 함수가 실행됨과 동시에 검증함수가 실행될때 검증되지 못한 값이 반환 즉, false 값을 반환할 경우 플레이어의 GameState를 강제변환시켜 프로그램에서 제외 시켜 버린다.
'공부 > Unreal Engine 5' 카테고리의 다른 글
[언리얼5] 언리얼 게임 흐름 관계 클래스 (0) | 2024.04.09 |
---|---|
[언리얼5] 위젯 텍스트 롤업(C++) (0) | 2024.04.09 |
[언리얼5] SSR & CSR (0) | 2024.04.07 |
[언리얼5] 언리얼 네트워크 시뮬레이션 관련 참고 자료 (0) | 2024.04.07 |
[언리얼5] 프로퍼티 동기화(C++ & BP) (0) | 2024.04.05 |
댓글