Seu SaaS está realmente seguro?
Estava navegando pelo YouTube quando encontrei este vídeo incrível:
https://youtu.be/r2E_Mc9KY6c?si=_26w3A37lfiVnFwB
Todo o crédito do vídeo e desta postagem vai para YuriRDev!
Pesquisei no TabNews e percebi que ninguém falou sobre isso ainda, então resolvi compartilhar.
A Importância da Segurança em SaaS
Se você já tentou lançar um SaaS e buscou desenvolvê-lo o mais rápido possível, sabe que essa abordagem pode ser arriscada. Não há nada de errado em querer agilidade, mas é essencial dedicar um tempo extra para segurança. Caso contrário, seu SaaS pode acabar vulnerável a ataques.
No vídeo, o Yuri analisa dois SaaS e demonstra falhas de segurança que poderiam causar grandes prejuízos, especialmente para sistemas com receita recorrente. Muitas dessas falhas são simples, mas passam despercebidas.
Não sou especialista em segurança, mas já me interessei pelo tema na época do PHP e aprendi algumas boas práticas que carrego até hoje. Por isso, quero compartilhar algumas dicas básicas para que você não cometa os mesmos erros.
📌 Dicas para Melhorar a Segurança do Seu SaaS
1️⃣ Nunca confie nos dados enviados pelo front-end
O back-end deve ser sólido e nunca depender apenas das informações enviadas pelo front-end. Aqui está um exemplo de erro comum (que inclusive é mostado do vídeo):
❌ Rota de assinatura insegura: O front-end envia os dados do plano diretamente para o gateway de pagamento.
✅ Solução: O back-end deve definir propriedades fixas sobre os planos disponíveis e permitir apenas que o front escolha qual deseja.
para quem não entendeu direito esse erro seria tão grave quanto permitir que o front-end envie diretamente comandos SQL para a api execultar no banco de dados, e nem preciso explicar porque isso daria um problemão.
Além disso, sempre valide permissões de usuário. Não basta confiar apenas no que o front-end informa.
2️⃣ Trate a API como o produto final
Esqueça o front-end por um momento e pense em sua API como um serviço autônomo. Quem interage com a API deve apenas especificar como quer os dados, e não o que a API deve fazer.
3️⃣ Utilize JWT para autenticação
Muitos iniciantes não conhecem o JWT (JSON Web Token), mas ele pode resolver problemas graves de segurança.
✅ Como funciona:
-
O servidor gera um token JWT com informações sobre o usuário, incluindo alguma forma de identificar o usuario e não só características do usuario para evitar que o usuario use o token de outra conta (como por exemplo um token de um site que tem o plano gratis temporário, ai quando
o tempo gratis do usuario acabar esse identificador do usuario vai evitar que ele possa criar uma conta nova e ultilizar esse token apenas um exemplo talvez guardar informações de plano ou outro tipo de dados no jwt não seja a melhor alternativa a não ser em casos específicos). -
Esse token é enviado ao cliente, que o armazena.
-
Toda vez que o cliente fizer uma requisição, ele envia o JWT para o servidor.
-
O servidor verifica se o token é válido (por meio da assinatura) e verifica os dados do jwt para ver se tal usuario tem tais permissões antes de processar a solicitação.
Isso teria prevenido o problema do primeiro SaaS analisado no vídeo, onde bastava alterar um ID na requisição para acessar dados de outros usuários.
Além disso, ajudaria a mitigar o problema do segundo SaaS, onde o usuário conseguia se tornar administrador apenas modificando um parâmetro na requisição. Se a API validasse essa informação via JWT, poderia impedir essa vulnerabilidade.
🔍 Conclusão
Essas são apenas algumas dicas básicas para melhorar a segurança de um SaaS. Existem muitas outras técnicas e boas práticas que podem ser aplicadas. Se você tiver mais sugestões, compartilhe nos comentários!
Ah, e para os hackers de plantão, se quiserem testar a segurança do meu SaaS, fiquem à vontade – desde que não façam ataques DDoS. Se encontrarem alguma falha, peço que relatem para o e-mail do projeto. Me preocupo bastante com segurança, mas ninguém é perfeito, então toda ajuda é bem-vinda.
🔗 Teste seu conhecimento em segurança aqui: https://showmyprojects.com