Learn-json-web-tokens: Vulnerabilidades de segurança

Criado em 4 jan. 2019  ·  3Comentários  ·  Fonte: dwyl/learn-json-web-tokens

Apenas uma sugestão: seria legal adicionar algumas informações sobre questões de segurança em diferentes métodos de armazenamento JWT no lado do cliente (cookie / localStorage) - XSS, CSRF etc.

discuss enhancement help wanted

Comentários muito úteis

@nelsonic

As questões de segurança aplicáveis ​​aos JWTs são as mesmas que para outros esquemas de token.
Se um usuário mal-intencionado conseguir executar um ataque XSS no domínio, ele poderá adquirir o JWT e usá-lo para representar o usuário, independentemente de como ele está armazenado no cliente.
JS maliciosos podem ler e vazar cookies e localStorage com a mesma facilidade.

Eu concordo parcialmente. Você tem algo como um cookie httpOnly e secure que impede que um invasor adquira seu JWT. Mas concordo totalmente que, se você está aberto a ataques XSS, isso não o protege de nada, pois alguém pode fazer coisas em nome do usuário (não roubar o token, mas, por exemplo, injetar um script malicioso).

Então eu acho que no final, não importa se você usa localStorage ou cookie - se você está aberto a ataques OWASP - você está ferrado. Mas se você está protegido contra eles - você deve estar seguro com os dois métodos.

Adoraria preparar algumas relações públicas, mas estou com pressa no momento e estarei livre apenas nos próximos 1 a 2 meses. Se alguém não me ultrapassar, prepararei algumas relações públicas 😄

Todos 3 comentários

@sarneeh obrigado por abrir esta edição. 👍
Se você tiver tempo para criar uma solicitação pull, vá em frente! (_você tem acesso de gravação a este repositório_)

As questões de segurança aplicáveis ​​aos JWTs são as mesmas que para outros esquemas de token.
Se um usuário mal-intencionado conseguir executar um ataque XSS no domínio, ele poderá adquirir o JWT e usá-lo para representar o usuário, independentemente de como ele está armazenado no cliente.
JS maliciosos podem ler e vazar cookies e localStorage com a mesma facilidade.

Devemos alertar as pessoas que usam JWTs de que eles não protegem contra ataques OWASP e são apenas uma forma _conveniente_ de transmitir declarações / dados assinados. 📝

@nelsonic

As questões de segurança aplicáveis ​​aos JWTs são as mesmas que para outros esquemas de token.
Se um usuário mal-intencionado conseguir executar um ataque XSS no domínio, ele poderá adquirir o JWT e usá-lo para representar o usuário, independentemente de como ele está armazenado no cliente.
JS maliciosos podem ler e vazar cookies e localStorage com a mesma facilidade.

Eu concordo parcialmente. Você tem algo como um cookie httpOnly e secure que impede que um invasor adquira seu JWT. Mas concordo totalmente que, se você está aberto a ataques XSS, isso não o protege de nada, pois alguém pode fazer coisas em nome do usuário (não roubar o token, mas, por exemplo, injetar um script malicioso).

Então eu acho que no final, não importa se você usa localStorage ou cookie - se você está aberto a ataques OWASP - você está ferrado. Mas se você está protegido contra eles - você deve estar seguro com os dois métodos.

Adoraria preparar algumas relações públicas, mas estou com pressa no momento e estarei livre apenas nos próximos 1 a 2 meses. Se alguém não me ultrapassar, prepararei algumas relações públicas 😄

@sarneeh obrigado por abrir esta edição.
Se você tiver tempo para criar uma solicitação pull, vá em frente! (_você tem acesso de gravação a este repositório_)

As questões de segurança aplicáveis ​​aos JWTs são as mesmas que para outros esquemas de token.
Se um usuário mal-intencionado conseguir executar um ataque XSS no domínio, ele poderá adquirir o JWT e usá-lo para representar o usuário, independentemente de como ele está armazenado no cliente.
JS maliciosos podem ler e vazar cookies e localStorage com a mesma facilidade.

Devemos alertar as pessoas que usam JWTs de que eles não protegem contra ataques OWASP e são apenas uma forma _conveniente_ de transmitir declarações / dados assinados.

Como dito acima, o cookie pode ter a opção httpOnly.
De acordo com este artigo , é realmente inseguro usar localstorage em vez do cookie httponly

Embora eu sinta que deixei claro que você nunca deve armazenar informações confidenciais no armazenamento local na seção anterior, sinto a necessidade de chamar especificamente JSON Web Tokens (JWTs).
Os maiores infratores de segurança que vejo hoje são aqueles de nós que armazenam JWTs (dados de sessão) no armazenamento local. Muitas pessoas não percebem que JWTs são essencialmente a mesma coisa que um nome de usuário / senha.
Se um invasor puder obter uma cópia do seu JWT, ele poderá fazer solicitações ao site em seu nome e você nunca saberá. Trate seus JWTs como se fossem um número de cartão de crédito ou senha: nunca os armazene no armazenamento local.

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

rjmk picture rjmk  ·  9Comentários

nelsonic picture nelsonic  ·  5Comentários

alanshaw picture alanshaw  ·  6Comentários

NE-SmallTown picture NE-SmallTown  ·  5Comentários

joepie91 picture joepie91  ·  18Comentários