Olá Eduardo, tudo bem?
Implementar um sistema de autenticação seguro em um aplicativo Node.js é uma tarefa importante para garantir a segurança dos dados dos usuários. Utilizar JWT (JSON Web Tokens) e armazená-los em cookies com HttpOnly é uma boa prática para aumentar a segurança do sistema.
Para proteger contra-ataques de XSS, você pode utilizar a biblioteca "helmet" do Node.js, que adiciona headers HTTP para aumentar a segurança do aplicativo. Além disso, é importante validar todas as entradas de dados do usuário e sanitizá-las, para evitar que scripts maliciosos sejam executados no aplicativo.
Para proteger contra-ataques de CSRF, você pode utilizar o "csurf", uma biblioteca que adiciona um token CSRF a cada formulário do aplicativo. Esse token é verificado no servidor antes de processar a requisição, garantindo que a requisição tenha sido originada do próprio aplicativo e não de um site malicioso.
Lembre-se de que não existe uma solução perfeita para garantir a segurança de um aplicativo, mas implementar essas medidas pode ajudar a aumentar a segurança do seu sistema.
Espero ter ajudado e bons estudos!