Guia

Como proteger um site ou app web com senha

Resposta rápida

Ative o recurso de senha da hospedagem: Password Protection no Vercel Pro ($20 por mês por projeto) ou no Netlify Pro, uma política do Cloudflare Access na frente do site, ou HTTP basic auth no seu próprio servidor. A senha precisa ser verificada pela hospedagem, não pelo código do próprio site.

Uma senha compartilhada serve para mostrar um rascunho a um cliente. Para uma ferramenta que seus colegas usam todo dia, um login da empresa funciona melhor. Abaixo estão os passos para cada hospedagem e, depois, a diferença entre as duas coisas.

Última atualização Escrito pelo TeamOnly. Fazemos uma hospedagem com login da empresa, por isso cada preço e passo abaixo tem link para as páginas do próprio fornecedor.

01Por hospedagem

Onde posso colocar uma senha, e quanto custa?

Todas as hospedagens comuns fazem isso. A diferença é o plano necessário e se os visitantes digitam uma senha compartilhada ou entram como eles mesmos.

Proteção com senha nas hospedagens comuns, conferido em 25 de outubro de 2026
HospedagemComo funcionaPlano necessárioCusto
VercelPassword Protection: uma senha por projetoPro ou Enterprise. Não no Hobby$20 por mês por projeto protegido no Pro, mais o plano Pro
NetlifySenha para o site todo, ou basic auth num arquivo _headersPro ou Enterprise. Não no Free nem no PersonalO Pro custa $20 por mês, com membros ilimitados
Cloudflare AccessCada pessoa recebe um PIN de uso único por e-mail, ou entra pelo seu provedor de identidadeSeu domínio na CloudflareGrátis até 50 usuários, depois $7 por usuário por mês, cobrado anualmente
Cloudflare WorkerHTTP basic auth escrito no WorkerQualquer plano de WorkersGrátis até 100.000 requisições por dia. O pago começa em $5 por mês
Seu próprio servidorHTTP basic auth no nginx ou no ApacheNenhumGrátis num servidor que você já mantém

Conferido em 25 de outubro de 2026. Fontes: Vercel Password Protection, Vercel Deployment Protection, changelog da Vercel, 9 de setembro de 2026, Vercel pricing, Netlify password protection, Netlify basic authentication, Netlify pricing, Cloudflare Access plans, Cloudflare one-time PIN, Cloudflare self-hosted applications, Cloudflare Workers basic auth example, Workers pricing, nginx basic authentication, Apache authentication.

02Passo a passo

Como ativar, hospedagem por hospedagem

Escolha a hospedagem em que seu site está. Cada uma leva poucos minutos.

Vercel

  1. Abra o projeto no painel da Vercel e vá em Settings, depois Deployment Protection.
  2. Em Password Protection, ative a chave.
  3. Escolha o que proteger. Standard Protection deixa seu domínio de produção aberto, então escolha All Deployments para cobrir também o endereço principal.
  4. Digite uma senha e clique em Save. Os visitantes digitam a senha uma vez por deployment, e um cookie se lembra dela.

Quanto custa Só no plano Pro: $20 por mês para cada projeto protegido. Incluído no Enterprise, não disponível no Hobby.

A opção grátis em todos os planos é a Vercel Authentication, que agora cobre a produção também. Os visitantes entram com uma conta na Vercel que tenha acesso ao projeto, então cada colega precisa de uma.

Netlify

  1. Abra o site e vá em Project configuration, General, Visitor access, Password Protection.
  2. Clique em Configure Password Protection, depois em Basic password protection, e digite a senha.
  3. Escolha All deploys para cobrir o site no ar além das prévias, depois clique em Save.
  4. Nos planos Pro mais novos, baseados em créditos, a mesma opção fica em Visitor access, Project visibility: escolha Password.
/*  Basic-Auth: dana:a-long-password sam:another-long-password

Quanto custa Plano Pro ($20 por mês, membros ilimitados) ou Enterprise. Não disponível no Free nem no Personal.

Para usuário e senha em parte do site, o Pro e o Enterprise também aceitam uma regra Basic-Auth num arquivo _headers, como a abaixo. A Netlify avisa que o basic auth não tem como sair da sessão.

Cloudflare Access

  1. Seu domínio precisa estar na Cloudflare. No painel, vá em Zero Trust, Integrations, Identity providers e adicione One-time PIN.
  2. Vá em Access controls, Applications, clique em Create new application, depois em Self-hosted and private, e adicione o hostname do seu site.
  3. Adicione uma política Allow. Use Emails ending in com @yourcompany.com para a empresa toda, ou Emails para pessoas específicas. Por padrão, o Access barra todas as outras pessoas.
  4. Clique em Create. Os visitantes digitam o e-mail, recebem um PIN que vale uma vez por 10 minutos e entram.

Quanto custa Grátis para até 50 usuários, depois $7 por usuário por mês, cobrado anualmente.

Isso não é uma senha compartilhada: cada pessoa prova que lê a própria caixa de entrada, então você vê e remove as pessoas uma a uma.

Um Cloudflare Worker com basic auth

  1. Comece pelo exemplo de basic auth para Workers da Cloudflare. Ele pede ao navegador um usuário e uma senha e os compara de um jeito que não vaza a senha pelo tempo de resposta.
  2. Guarde a senha como segredo, não no código, com o comando abaixo.
  3. Sirva só por HTTPS. Sem isso, o basic auth envia a senha sem criptografia.
npx wrangler secret put PASSWORD

Quanto custa O Workers Free cobre 100.000 requisições por dia. O Workers Paid começa em $5 por mês.

A Cloudflare diz que o exemplo não é adequado para produção e indica o Cloudflare Access no lugar.

Seu próprio servidor

  1. Instale a ferramenta htpasswd (pacote apache2-utils no Debian e no Ubuntu, httpd-tools no Red Hat) e crie um arquivo de senhas com uma linha por pessoa.
  2. No nginx, adicione auth_basic e auth_basic_user_file ao site, como abaixo. No Apache, use AuthType Basic, AuthUserFile e Require valid-user.
  3. Deixe o arquivo de senhas fora da pasta web e use HTTPS. A documentação do Apache avisa que o basic auth envia a senha sem criptografia.
sudo htpasswd -c /etc/apache2/.htpasswd dana

# nginx
location / {
    auth_basic           "Staff only";
    auth_basic_user_file /etc/apache2/.htpasswd;
}

Quanto custa Grátis num servidor que você já mantém.

O basic auth pode ter uma senha separada para cada pessoa, o que é melhor do que uma senha compartilhada. Mesmo assim, você adiciona e remove pessoas à mão no servidor.

03Senha compartilhada ou login

Quando uma senha basta?

Uma senha compartilhada serve para

  • Um rascunho ou uma demonstração para um cliente ou alguém de fora da empresa, por alguns dias.
  • Uma cópia de teste de um site público que você ainda não quer indexado.
  • Qualquer coisa em que não importa quem viu, só que estranhos não viram.

04Lado a lado

Senha compartilhada vs login da empresa

Login da empresa significa que cada pessoa entra com a conta de trabalho que sua empresa já fornece: Google, Microsoft ou um código enviado ao e-mail corporativo.

Uma senha compartilhada comparada com um login da empresa para uma ferramenta interna
PerguntaSenha compartilhadaLogin da empresa
Quem entraQualquer pessoa que tenha a senha, venha ela de onde vierSó pessoas com uma conta no domínio de e-mail da sua empresa
Tirar uma pessoaTrocar a senha e mandar a nova para todos os outrosTirar a pessoa da lista, ou desativar a conta de trabalho dela quando ela sair
Saber quem usouNão. Para o app, todo mundo é igualSim. O app recebe o nome e o e-mail de cada pessoa
Se vazarFunciona para quem encontrar, numa conversa, num e-mail ou num printNão há nada para vazar. Um estranho precisaria de uma conta válida na sua empresa
Custo$20 por mês por projeto no Vercel Pro. Um plano Pro na Netlify. Grátis no seu próprio servidorGrátis até 50 usuários no Cloudflare Access, se você configurar. $19 por mês no TeamOnly, com hospedagem incluída

05Login da empresa, embutido

Como colocar um app interno atrás do login da empresa com o TeamOnly

Se o site é na verdade uma ferramenta interna, você pode dispensar a senha. O TeamOnly hospeda o app e verifica o login da sua empresa antes de qualquer parte dele carregar.

  1. Comece grátis com seu e-mail corporativo

    Teste grátis por 14 dias, sem cartão. Depois, o Builder custa $19 por mês para um criador e até três apps. O domínio de e-mail da sua empresa vira a porta.

  2. Rode npx teamonly init no seu projeto

    Ele adiciona instruções para o Claude Code e o Cursor, e a pequena biblioteca que seu app usa para saber quem entrou e acessar o banco de dados e os arquivos.

  3. Entre e publique

    Rode npx teamonly login uma vez, depois npx teamonly deploy. Você recebe um link como expenses.acme.teamonly.app.

  4. Mande o link

    Os colegas entram com a conta Google ou Microsoft de trabalho, ou com um código enviado ao e-mail corporativo. Você pode restringir a pessoas específicas com npx teamonly access only dana@acme.com.

06FAQ

Perguntas frequentes

Todas as perguntas e respostas

Como proteger um site com senha de graça?

No seu próprio servidor, HTTP basic auth não custa nada. Na Cloudflare, o Access é grátis para até 50 usuários e pode mandar a cada pessoa um PIN de uso único por e-mail, mas seu domínio precisa estar na Cloudflare. O plano Hobby da Vercel e os planos Free e Personal da Netlify não oferecem proteção com senha.

Quanto custa a proteção com senha da Vercel?

No plano Pro, custa $20 por mês para cada projeto que você protege, além do próprio Pro. Está incluída no Enterprise e não está disponível no Hobby. A Vercel Authentication é grátis em todos os planos, mas os visitantes precisam de uma conta na Vercel com acesso ao projeto.

A Netlify tem proteção com senha no plano grátis?

Não. A documentação da Netlify diz que a proteção com senha não está disponível nos planos Free e Personal. Ela existe no Pro, que custa $20 por mês com membros ilimitados, e no Enterprise.

Posso proteger um app React com senha?

Sim, mas não de dentro do React. Tudo o que está no seu código React é enviado ao navegador, então uma verificação de senha ali pode ser lida e pulada. Coloque a senha na hospedagem (Vercel, Netlify, Cloudflare ou seu servidor), para que nada carregue antes de ela ser digitada.

Uma senha compartilhada é segura o bastante para uma ferramenta interna?

Ela mantém estranhos e buscadores do lado de fora. Mas não diz quem está usando a ferramenta, e você não consegue tirar o acesso de uma pessoa sem mudar para todo mundo. Para uma ferramenta que os colegas usam todo dia, um login com a conta de trabalho de cada pessoa é a escolha mais segura.

Posso proteger um site público com senha usando o TeamOnly?

Não. O TeamOnly é só para apps internos em que os colegas entram com a conta de trabalho. Sites públicos não são permitidos. Para um site público com senha, use uma das hospedagens desta página.

Acesso antecipado

Dispense a senha compartilhada nas ferramentas da sua equipe

O Builder custa $19 por mês. Os colegas entram com a conta de trabalho, e mais ninguém entra.

Teste grátis por 14 diasOu assine agora

Sem cartão no teste. Depois, a partir de $19 por mês, cancele quando quiser.

Ainda não? Receba novidades

Use seu e-mail corporativo. Escrevemos pouco, e só quando há novidade que valha a pena.

Dúvidas vão para hello@teamonly.dev, e uma pessoa responde.