Saltar para o conteúdo principal

Documentation Index

Fetch the complete documentation index at: https://docs.replit.com/llms.txt

Use this file to discover all available pages before exploring further.

Este guia fornece uma lista de verificação de segurança abrangente para garantir que seus aplicativos de vibe coding sigam as melhores práticas de segurança. Embora o Replit forneça muitos recursos de segurança prontos para uso, é importante entender e implementar mais medidas de segurança para as necessidades específicas do seu aplicativo.

Pré-requisitos

  • Uma conta no Replit
  • Conhecimento básico da sua linguagem de programação preferida
  • Familiaridade com o Editor de projeto
  • Um aplicativo que você está criando no Replit

Segurança do front-end

O Replit usa HTTPS por padrão em todos os aplicativos. Então você não precisa se preocupar com isso!
Sempre valide e sanitize a entrada do usuário para evitar ataques de cross-site scripting (XSS):
// Ruim: Uso direto da entrada do usuário
element.innerHTML = userInput;

// Bom: Sanitize a entrada antes de usar
import { sanitize } from 'some-sanitizer-library';
element.innerHTML = sanitize(userInput);
Mude para o Modo Lite e peça ao Agent:
Ajude-me a validar e sanitizar entradas para proteger contra ataques XSS
Você deve usar Secrets do Replit para armazenar informações sensíveis como chaves de API.Certifique-se de não passar secrets para o lado do cliente nem colocá-los nos seguintes lugares:
  • Armazenamento local
  • Armazenamento de sessão
  • JavaScript do lado do cliente
  • Cookies sem atributos de segurança adequados
Mude para o Modo Lite e peça ao Agent:
Ajude-me a manter dados sensíveis fora do navegador. Estou fazendo isso corretamente?
Implemente proteção Cross-Site Request Forgery (CSRF) para formulários:
// Exemplo de implementação de token CSRF
const csrfToken = generateToken();
session.csrfToken = csrfToken;
Mude para o Modo Lite e peça ao Agent:
Ajude-me a implementar tokens CSRF para formulários

Segurança do back-end

Ao implementar autenticação:
  • Use o Replit Auth quando possível
  • Se criar autenticação personalizada, use bibliotecas estabelecidas
  • Nunca armazene senhas em texto simples
Peça ao Agent:
Ajude-me a implementar autenticação para meu aplicativo com o Replit Auth
Sempre verifique permissões antes de realizar ações:
// Exemplo de verificação de autorização
if (!user.canAccess(resource)) {
  return res.status(403).send('Acesso negado');
}
Peça ao Agent:
Ajude-me a implementar verificações de autorização para meu aplicativo
Proteja seus endpoints de API:
  • Adicione autenticação a endpoints sensíveis
  • Implemente configurações CORS adequadas
  • Considere limitação de taxa
Mude para o Modo Lite e peça ao Agent:
Como autentico adequadamente os endpoints no meu aplicativo?
O Agent usa ORMs por padrão, o que ajuda a prevenir a injeção de SQL. Se estiver escrevendo consultas de banco de dados personalizadas:
// Ruim: Concatenação de strings em consultas
db.query(`SELECT * FROM users WHERE username = '${username}'`);

// Bom: Consultas parametrizadas com ORM
db.query('SELECT * FROM users WHERE username = ?', [username]);
Adicione cabeçalhos de segurança importantes ao seu aplicativo:
<!-- No index.html ou pelo seu back-end -->
<meta http-equiv="X-Frame-Options" content="DENY">
<meta http-equiv="X-Content-Type-Options" content="nosniff">
<meta http-equiv="Content-Security-Policy" content="default-src 'self'">
Você pode verificar seu site em securityheaders.com para recomendações.Mude para o Modo Lite e peça ao Agent:
Você pode adicionar os cabeçalhos de segurança ao meu aplicativo?

Práticas contínuas de segurança

Verifique regularmente pacotes desatualizados que podem ter vulnerabilidades:
npm audit
Não exponha informações sensíveis em mensagens de erro:
// Ruim: Exposição de detalhes sensíveis
catch (err) {
  res.status(500).send(`Erro de banco de dados: ${err.message}`);
}

// Bom: Mensagem de erro genérica
catch (err) {
  console.error(err); // Registre internamente
  res.status(500).send('Ocorreu um erro');
}
Peça ao Agent:
Ajude-me a implementar o tratamento adequado de erros para meu aplicativo
Ao usar cookies:
  • Defina o sinalizador HttpOnly para impedir o acesso por JavaScript
  • Use o atributo Secure para exigir HTTPS
  • Implemente o atributo SameSite para prevenir CSRF
Peça ao Agent:
Ajude-me a proteger meus cookies para meu aplicativo
Se seu aplicativo permite uploads de arquivos:
  • Restrinja tipos e tamanhos de arquivos
  • Verifique malware, se possível
  • Armazene arquivos no armazenamento de objetos do Replit
  • Gere novos nomes de arquivo em vez de usar os fornecidos pelo usuário
Peça ao Agent:
Ajude-me a proteger os uploads de arquivos do meu aplicativo
Implemente limitação de taxa para endpoints de API, especialmente os relacionados à autenticação:
// Exemplo de middleware de limitação de taxa
const rateLimit = require('express-rate-limit');

const limiter = rateLimit({
  windowMs: 15 * 60 * 1000, // 15 minutos
  max: 100 // limite cada IP a 100 requisições por windowMs
});

app.use('/api/', limiter);
Peça ao Agent:
Ajude-me a implementar limitação de taxa para meu aplicativo

Lista de verificação

Aqui está o resumo acima em uma lista de verificação para ajudá-lo a manter suas práticas de segurança em dia.

Segurança do front-end

Medida de segurançaDescrição
Use HTTPS em todos os lugaresEvita bisbilhotagem básica e ataques man-in-the-middle
Validação e sanitização de entradaEvita ataques XSS validando todas as entradas do usuário
Não armazene dados sensíveis no navegadorSem secrets no armazenamento local ou código do lado do cliente
Proteção CSRFImplemente tokens anti-CSRF para formulários e solicitações que alteram estado
Nunca exponha chaves de API no front-endAs credenciais de API devem sempre permanecer no lado do servidor

Segurança do back-end

Medida de segurançaDescrição
Fundamentos de autenticaçãoUse bibliotecas estabelecidas, armazenamento adequado de senhas (hash+salt)
Verificações de autorizaçãoSempre verifique permissões antes de realizar ações
Proteção de endpoints de APIImplemente autenticação adequada para cada endpoint de API
Prevenção de injeção de SQLUse consultas parametrizadas ou ORMs, nunca SQL bruto com entrada do usuário
Cabeçalhos de segurança básicosImplemente X-Frame-Options, X-Content-Type-Options e HSTS
Proteção contra DDoSUse um CDN ou serviço em nuvem com recursos integrados de mitigação de DDoS

Hábitos práticos de segurança

Medida de segurançaDescrição
Mantenha as dependências atualizadasA maioria das vulnerabilidades vem de bibliotecas desatualizadas
Tratamento adequado de errosNão exponha detalhes sensíveis em mensagens de erro
Cookies segurosDefina os atributos HttpOnly, Secure e SameSite
Segurança de upload de arquivosValide tipos de arquivo, tamanhos e verifique conteúdo malicioso
Limitação de taxaImplemente em todos os endpoints de API, especialmente os relacionados à autenticação