Segurança Rest X Front JS

Falaaa!!

Preciso de ajuda conceitual relacionado a segurança pra resolver um problema que ta me impedindo de prosseguir com meus projetos.

Já pesquisei aqui e vi alguns posts, mas gostaria de mais informações.

Ao integrar um Restful Spring com uma aplicação JS, surgiu uma dúvida quanto ao que usar para tornar essa comunicação segura.

Sei que a utilização do SSL é indispensável. Pronto.
Também que dá pra habilitar o CORS no Rest.

Num projeto recente meu, Java, integro a API da Cielo, que fornece um api_key e api_secret. Adiciono isso ao header e pronto.

Já no javascript, que tenho estudado há pouco tempo, seria seguro incluir esses valores no código?

Num cenário real a dúvida seria: como integrar uma API (um pequeno serviço rest) entre uma aplicação Java e um front Javascript?

Vlw pessoal.

Depende da aplicação. Geralmente, como API RESTful não mantém estado (ou não era pra manter), são utilizados tokens de acesso. Existem algumas técnicas diferentes pra isso. Duas das mais famosas hoje são JWT e OAuth2.0. Não são ferramentas, são especificações, frameworks, basicamente um documento te dizendo o que você faz para ter segurança com tokens de acesso na tua aplicação.

JWT é mais simples de entender, porém a senha do usuário é sempre necessária para adquirir o token, e isso pode se tornar uma falha de segurança, caso a aplicação armazene essas credenciais no browser ou em algum lugar não seguro.

Isso que você usou de api_key e api_secret tá com cara de OAuth. OAuth e OAuth2.0, apesar de parecerem uma continuação, são BEM diferentes. No 2, o framework foi completamente flexibilizado e tornou-se bem mais agradável de entender e desenvolver. Mas ainda assim, a curva de aprendizado existe e pode levar um tempinho até a gente pegar direito como funciona. Eu prefiro OAuth2.0 do que JWT, mas às vezes JWT é suficiente.

O que é uma aplicação JS? Backend? Frontend?

O que alguém pode fazer na API da cielo quando de posse das suas credenciais?

Aplicação utilizando JavaScript no front.

De posse de credenciais dá pra deletar uma venda por exemplo. Visualizar algumas informações do cliente, do cartão e por ai vai.

Minha aplicação vai fornecer apenas alguns dados, mas o nível mínimo de segurança deve ser observado.

Sim, vou estudar o OAuth2.0 já que sempre as respostas estão convergindo para ele. Inclusive tem um guide do Spring framework bem explicativo.

O que me deixava um pouco receioso é que pra garantir o token era preciso tb de um usuário e senha, mas pelo que vc falou isso era na versão anterior.

Obrigado, vou pesquisar e retorno aqui.