Pida disculpas por adelantado si este es el sitio de SE incorrecto para este tema, aunque debería ser una coincidencia bastante apropiada.
Estoy creando un videojuego en el que una de las funciones disponibles para los usuarios será el multijugador en línea. Estaré lanzando el software del servidor de forma gratuita (y de código abierto) con la esperanza de que los usuarios puedan ejecutar sus propios servidores modificables para sus comunidades.
Los servidores pueden utilizar los recursos de "vainilla" libremente, sin embargo, algunos pueden optar por agregar sus propios recursos, como texturas y modelos. Lo que me gustaría lograr es permitir que los clientes (con una acción explícita del usuario) descarguen los activos necesarios.
Para agregar una capa de complejidad adicional, algunos de estos activos están disponibles para descarga pública, mientras que otros son de propiedad exclusiva y solo están disponibles a través del servidor.
Mi principal preocupación es la mitigación de archivos maliciosos a través del software de distribución. Sin embargo, mi "gracia salvadora" puede ser que todos los archivos que se distribuyen sean .png
, .txt
, .xml
, .yml
y .mdl
, y todos serán utilizables en sus formas existentes sin modificación .
Los archivos no se enviarán al cliente, sino que el cliente los extraerá. Esto eliminará cualquier problema con el servidor que tiene acceso al sistema de archivos del cliente, lo que realmente podría hacer daño.
Ahora, para la parte de la pregunta:
Además de un gran descargo de responsabilidad, el usuario debe saber que es su problema si algo sucede, ¿dónde debo ubicar mis preocupaciones con respecto a la seguridad y la validez de los archivos?
Todas las comunicaciones hacia y desde el servidor se cifrarán, probablemente utilizando algo similar al protocolo de Señal. Además, cuando un administrador del servidor carga un archivo, haré que el servidor genere un hash que permita que el software del cliente verifique que el archivo no se modificó en tránsito, aunque nada más.
La mayoría de los archivos transmitidos serán .txt
, que por sí solos no deberían representar ningún peligro inherente (a mi entender). Además, ninguno de los archivos se ejecutan. El código en la máquina del cliente analizará los archivos y descartará todo lo que no sea el formato correcto.
Entiendo que no se pueden abordar todas las inquietudes aquí porque el tema es bastante amplio, aunque se apreciarán los indicadores sobre cualquier problema potencial o cualquier otra cosa que se tenga en cuenta, en general.