Introduzione
Attualmente sto provando a creare un livello di rete per Unity da zero. Attualmente sto testando la comunicazione tramite UDP usando Node.js per il server e il client. Comunque credo che il linguaggio dell'implementazione non abbia importanza per quello che chiedo.
In realtà, leggo solo cose relative alla sicurezza sul lato server. Ma a causa della necessità che altre persone mi aiutino a testare ciò che sto creando, ho davvero bisogno di essere sicuro che non saranno danneggiati in alcun modo.
Approccio attuale
L'approccio attuale che utilizza Node.js per il server e il client è piuttosto semplice. Semplicemente invio un messaggio da un client al mio server mentre il client e il server non si trovano nella stessa rete locale. Entrambi sono dietro un router e quindi anche dietro un NAT.
Il server quindi restituisce una risposta all'IP e alla porta ricevuta all'interno del pacchetto UDP inviato dal client.
Problema
Sono curioso della sicurezza sul lato client dei dati malevoli inviati da qualcuno che sta spoofing il client e / o il NAT. Inoltre non sono sicuro se il fatto che la mia applicazione stia aprendo le porte sulle macchine e sui router dei client potrebbe essere usato per qualcosa di malevolo.
Assunzione
Finora ho capito che i dati dannosi potrebbero essere di fatto un problema a livello di applicazione. Inoltre ho capito che non si tratta di un problema di sicurezza quando la mia applicazione apre le porte (localmente sul computer client e quindi quando si invia all'interno del router client) o almeno non posso fare nulla contro di esso.
Quindi in sintesi ciò significherebbe che ho solo bisogno di proteggere il client su livelli OSI superiori a 4 (all'interno dell'applicazione). Tutto ciò che è inferiore o uguale al livello OSI 4 non deve essere reso più sicuro da solo.
Domanda
Quindi la mia ipotesi è corretta? In caso affermativo, cosa posso fare contro i dati dannosi?