Executando verificação de segurança...
8

Acho que você se equivocou um pouco nos conceitos.

Primeiro, você está equivocado quando diz que guardar em localStorage ou cookies deixa seu app vulnerável a XSS. Na verdade o que acontece é o contrário: onde você guarda ou deixa de guardar o token não te deixa vulnerável a XSS, mas se o seu site tiver alguma vulnerabilidade XSS, ela pode ser usada para extrair essas informações se não forem bem protegidas.

Segundo, você não tem que fazer planos pensando "se o refresh token for obtido por um terceiro", da mesma forma que você não faz planos pensando "se alguém tiver acesso ao meu banco de dados através uma SQL injection". Você não planeja o seu sistema pensando no que fazer se tiver vulnerabilidades - você planeja o seu sistema para não ter vulnerabilidades. Se alguém obter o refreshToken de um terceiro ele pode fazer tudo em nome desse terceiro. É seu papel impedir isso de acontecer.

Terceiro, cookies HTTP-only transmitidos através de HTTPS não podem ser lidos pelo javascript. Se XSS é o maior dos seus problemas, essa é a solução.

Carregando publicação patrocinada...
1

Interessante a discussão e aproveitando o tópico: alguém conhece algum bom curso/video que auxilie na implementação de uma autenticação dessa forma?

Em outras palavras, uma Capela Sistina de como criar um bom método de autenticação.