Skip to main content

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 vibe coded sigam as melhores práticas de segurança. Embora o Replit ofereça muitos recursos de segurança prontos para uso, é importante entender e implementar medidas de segurança adicionais para as necessidades específicas da sua aplicação.

Pré-requisitos

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

Segurança no front-end

O Replit usa HTTPS por padrão em todos os aplicativos. Portanto, você não precisa se preocupar com isso!
Sempre valide e sanitize a entrada do usuário para prevenir 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 pergunte ao Agent:
Help me validate and sanitize inputs to protect against XSS attacks
Você deve usar os Secrets do Replit para armazenar informações sensíveis como chaves de API.Certifique-se de não passar segredos para o lado cliente nem colocá-los nos seguintes lugares:
  • Local storage
  • Session storage
  • JavaScript no lado cliente
  • Cookies sem atributos de segurança adequados
Mude para o modo Lite e pergunte ao Agent:
Help me keep sensitive data out of the browser. Am I doing this correctly?
Implemente proteção contra 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 pergunte ao Agent:
Help me implement CSRF tokens for forms

Segurança no back-end

Ao implementar autenticação:
  • Use o Replit Auth sempre que possível
  • Se estiver criando autenticação personalizada, use bibliotecas estabelecidas
  • Nunca armazene senhas em texto simples
Pergunte ao Agent:
Help me implement authentication for my application with 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('Access denied');
}
Pergunte ao Agent:
Help me implement authorization checks for my application
Proteja seus endpoints de API:
  • Adicione autenticação a endpoints sensíveis
  • Implemente configurações CORS adequadas
  • Considere implementar rate limiting
Mude para o modo Lite e pergunte ao Agent:
How do I properly authenticate endpoints in my app?
O Agent usa ORMs por padrão, o que ajuda a prevenir injeção 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 à sua aplicação:
<!-- No index.html ou através do 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 escanear seu site em securityheaders.com para recomendações.Mude para o modo Lite e pergunte ao Agent:
Can you add the security headers to my application?

Práticas contínuas de segurança

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

// Bom: Mensagem de erro genérica
catch (err) {
  console.error(err); // Log interno
  res.status(500).send('An error occurred');
}
Pergunte ao Agent:
Help me implement proper error handling for my application
Ao usar cookies:
  • Defina a flag HttpOnly para prevenir acesso via JavaScript
  • Use o atributo Secure para exigir HTTPS
  • Implemente o atributo SameSite para prevenir CSRF
Pergunte ao Agent:
Help me secure my cookies for my application
Se sua aplicação permite upload de arquivos:
  • Restrinja tipos e tamanhos de arquivo
  • Escaneie em busca de malware quando possível
  • Armazene arquivos no armazenamento de objetos do Replit
  • Gere novos nomes de arquivo em vez de usar os fornecidos pelo usuário
Pergunte ao Agent:
Help me secure my file uploads for my application
Implemente rate limiting para endpoints de API, especialmente os relacionados à autenticação:
// Exemplo de middleware de rate limiting
const rateLimit = require('express-rate-limit');

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

app.use('/api/', limiter);
Pergunte ao Agent:
Help me implement rate limiting for my application

Lista de verificação

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

Segurança no front-end

Medida de segurançaDescrição
Usar HTTPS em todo lugarPrevine interceptação básica e ataques man-in-the-middle
Validação e sanitização de entradaPrevine ataques XSS ao validar todas as entradas do usuário
Não armazenar dados sensíveis no navegadorSem segredos no local storage ou código do lado cliente
Proteção CSRFImplemente tokens anti-CSRF para formulários e requisições que alteram estado
Nunca expor chaves de API no front-endCredenciais de API devem sempre permanecer no lado servidor

Segurança no back-end

Medida de segurançaDescrição
Fundamentos de autenticaçãoUse bibliotecas estabelecidas, armazenamento adequado de senhas (hashing+salting)
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 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 DDoSUse um CDN ou serviço de nuvem com recursos de mitigação DDoS integrados

Hábitos práticos de segurança

Medida de segurançaDescrição
Manter 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 no upload de arquivosValide tipos e tamanhos de arquivo e escaneie conteúdo malicioso
Rate limitingImplemente em todos os endpoints de API, especialmente os relacionados à autenticação