Desenvolver uma aplicação cliente-servidor utilizando o protocolo TCP e programação de sockets. O servidor deve lidar com múltiplos clientes simultaneamente (multithreading) e oferecer transferência de arquivos com verificação de integridade (SHA) e um serviço de chat.
Ao implementar a funcionalidade de transferência de arquivos, o aluno deve se atentar obrigatoriamente a:
/arquivos)../arquivos/ + entrada_usuario), um atacante pode enviar strings como ../../etc/passwd ou ../../windows/system32/config/SAM para acessar qualquer arquivo do seu sistema operacional.
O seu código deve sanitizar a entrada para impedir que o usuário saia do diretório padrão.
accept), criar uma thread dedicada.../../).send() seguidos, eles podem chegar colados no receptor.
Sugestão: Implemente um cabeçalho inicial de tamanho fixo que informe ao receptor quantos bytes ele deve ler para o comando e quantos para os dados.