指南

如何给网站或网页应用加密码保护

简短回答

打开托管平台自带的密码功能:Vercel Pro的Password Protection(每个项目每月$20)或Netlify Pro,在网站前面加一条Cloudflare Access策略,或在自己的服务器上用HTTP基本认证。密码必须由托管平台检查,而不是由网站自己的代码检查。

给客户看个草稿,用共享密码就够了。同事每天都要用的工具,企业登录更合适。下面先介绍每个托管平台的操作步骤,再说明这两种方式的区别。

最后更新 本文由TeamOnly撰写。我们做的是带企业登录的托管平台,所以下面每个价格和步骤都链接到各家自己的页面。

01按托管平台

在哪里可以加密码,要花多少钱?

常见的托管平台都能做到。区别在于需要哪个套餐,以及访问者是输入同一个共享密码,还是以自己的身份登录。

常见托管平台的密码保护,核对于2026年10月25日
托管平台工作方式所需套餐费用
VercelPassword Protection:每个项目一个密码Pro或Enterprise。Hobby不提供Pro上每个受保护项目每月$20,另付Pro套餐费用
Netlify全站密码,或在_headers文件里设置基本认证Pro或Enterprise。Free和Personal不提供Pro每月$20,成员不限
Cloudflare Access每个人通过邮件收到一次性PIN,或用你的身份提供商登录你的域名托管在Cloudflare50个用户以内免费,之后每用户每月$7,按年付费
Cloudflare Worker在Worker里写HTTP基本认证任意Workers套餐每天10万次请求以内免费。付费版每月$5起
自己的服务器在nginx或Apache里配置HTTP基本认证无在你已有的服务器上免费

核对于2026年10月25日。来源:Vercel Password Protection、Vercel Deployment Protection、Vercel更新日志,2026年9月9日、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。

02分步操作

各托管平台的开启方法

选你的网站所在的托管平台。每个都只要几分钟。

Vercel

  1. 在Vercel控制台打开项目,进入Settings,然后进入Deployment Protection。
  2. 在Password Protection里,打开开关。
  3. 选择要保护的范围。Standard Protection不保护你的生产域名,所以要选All Deployments,把主网址也覆盖进来。
  4. 输入密码,然后选择Save。访问者每次部署只需输入一次,之后由Cookie记住。

费用 仅限Pro套餐:每个受保护项目每月$20。Enterprise已包含,Hobby不提供。

所有套餐都免费的方式是Vercel Authentication,现在也覆盖生产环境了。访问者要用一个有该项目访问权限的Vercel账号登录,所以每个同事都需要一个。

Netlify

  1. 打开网站,依次进入Project configuration、General、Visitor access、Password Protection。
  2. 选择Configure Password Protection,再选Basic password protection,然后输入密码。
  3. 选择All deploys,让正式网站和预览都受保护,然后选择Save。
  4. 在较新的按额度计费的Pro套餐上,同样的设置在Visitor access、Project visibility下:选择Password。
/*  Basic-Auth: dana:a-long-password sam:another-long-password

费用 Pro套餐(每月$20,成员不限)或Enterprise。Free和Personal不提供。

如果只想给网站的一部分加用户名和密码,Pro和Enterprise也支持在_headers文件里写Basic-Auth规则,像下面这样。Netlify提醒,基本认证没有办法退出登录。

Cloudflare Access

  1. 你的域名必须托管在Cloudflare。在控制台依次进入Zero Trust、Integrations、Identity providers,添加One-time PIN。
  2. 进入Access controls、Applications,选择Create new application,再选Self-hosted and private,然后添加你网站的主机名。
  3. 添加一条Allow策略。整个公司用Emails ending in加上@yourcompany.com,指定的人用Emails。其他人Access默认都会拒绝。
  4. 选择Create。访问者输入邮箱,收到一个10分钟内有效、只能用一次的PIN,就能进来。

费用 50个用户以内免费,之后每用户每月$7,按年付费。

这不是共享密码:每个人都要证明自己能看到自己的收件箱,所以你可以一个一个地查看和移除人员。

用Cloudflare Worker做基本认证

  1. 从Cloudflare的Workers基本认证示例开始。它会让浏览器询问用户名和密码,并用不会通过时间差泄露密码的方式进行比对。
  2. 用下面的命令把密码存成密钥,不要写在代码里。
  3. 只通过HTTPS提供服务。否则基本认证会以未加密的方式发送密码。
npx wrangler secret put PASSWORD

费用 Workers免费版每天可处理10万次请求。Workers付费版每月$5起。

Cloudflare注明这个示例不适合用于生产环境,并建议改用Cloudflare Access。

自己的服务器

  1. 安装htpasswd工具(Debian和Ubuntu上是apache2-utils包,Red Hat上是httpd-tools),创建一个密码文件,每人一行。
  2. 在nginx里,给网站加上auth_basic和auth_basic_user_file,如下所示。在Apache里,用AuthType Basic、AuthUserFile和Require valid-user。
  3. 把密码文件放在网站目录之外,并使用HTTPS。Apache的文档提醒,基本认证会以未加密的方式发送密码。
sudo htpasswd -c /etc/apache2/.htpasswd dana

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

费用 在你已有的服务器上免费。

基本认证可以给每个人单独设密码,比一个共享密码好。但你仍然要在服务器上手动添加和移除人员。

03共享密码还是登录

什么时候用密码就够了?

共享密码适合

  • 给客户或公司以外的人看几天的草稿或演示。
  • 公开网站的预发布副本,你暂时还不想让它被搜索引擎收录。
  • 不在乎谁看过、只要陌生人看不到的东西。

04并排对比

共享密码与企业登录对比

企业登录是指每个人都用公司已经给他们的工作账号登录:Google、Microsoft,或发到工作邮箱的验证码。

内部工具使用共享密码与企业登录的对比
问题共享密码企业登录
谁能进来任何有密码的人,不管密码是从哪里拿到的只有在你公司邮箱域名下有账号的人
移除某一个人改密码,再把新密码发给其他所有人把他从名单里删掉,或者在他离职时停用他的工作账号
知道谁用过不知道。在应用看来每个人都一样知道。应用能拿到每个人的姓名和邮箱
如果泄露了谁捡到都能用,不管是在聊天记录、邮件还是截图里没有可泄露的东西。陌生人需要你公司里一个能用的账号
费用Vercel Pro上每个项目每月$20。Netlify需要Pro套餐。在自己的服务器上免费Cloudflare Access在50个用户以内免费,前提是你自己配置。TeamOnly每月$19,含托管

05内置企业登录

如何用TeamOnly把内部应用放到企业登录后面

如果这个网站其实是个内部工具,就可以不用密码。TeamOnly托管应用,并在任何内容加载之前先检查企业登录。

  1. 用工作邮箱免费开始

    免费试用14天,无需绑卡。之后Builder套餐每月$19,含1个搭建者和最多3个应用。你公司的邮箱域名就是进门的钥匙。

  2. 在项目里运行npx teamonly init

    它会添加给Claude Code和Cursor看的说明,以及你的应用用来获取已登录用户、数据库和文件的小型库。

  3. 登录,然后部署

    先运行一次npx teamonly login,再运行npx teamonly deploy。你会得到一个类似expenses.acme.teamonly.app的链接。

  4. 把链接发出去

    同事用工作用的Google或Microsoft账号登录,或者用发到工作邮箱的验证码登录。你可以用npx teamonly access only dana@acme.com把范围缩小到指定的人。

06常见问题

大家常问的问题

查看全部问答

怎么免费给网站加密码保护?

在自己的服务器上,HTTP基本认证不花钱。在Cloudflare上,Access对50个用户以内免费,还能给每个人发一次性PIN邮件,但你的域名必须托管在Cloudflare。Vercel的Hobby套餐,以及Netlify的Free和Personal套餐,都不提供密码保护。

Vercel的密码保护多少钱?

在Pro套餐上,每保护一个项目每月$20,另付Pro套餐本身的费用。Enterprise套餐已包含,Hobby套餐不提供。Vercel Authentication在所有套餐上都免费,但访问者需要一个有该项目访问权限的Vercel账号。

Netlify免费套餐有密码保护吗?

没有。Netlify的文档写明,Free和Personal套餐不提供密码保护。Pro套餐(每月$20,成员不限)和Enterprise套餐提供。

能给React应用加密码保护吗?

能,但不能在React里面做。React代码都会发送到浏览器,所以写在里面的密码检查可以被读到,也可以被跳过。应该把密码加在托管平台上(Vercel、Netlify、Cloudflare或你的服务器),这样输入密码之前什么都不会加载。

内部工具用一个共享密码,够安全吗?

它能挡住陌生人和搜索引擎。但它不会告诉你是谁在用这个工具,而且想收回某一个人的权限,就得给所有人换密码。同事每天都要用的工具,让每个人用自己的工作账号登录更安全。

能用TeamOnly给公开网站加密码吗?

不能。TeamOnly只用于同事用工作账号登录的内部应用,不允许公开网站。公开网站要加密码,请用本页介绍的其他托管平台。

抢先体验

团队的工具,不用再共享密码

Builder套餐每月$19。同事用工作账号登录,其他人都进不来。

免费试用14天或者现在就订阅

试用无需绑卡。之后每月$19起,随时可取消。

还没准备好?先获取动态

请使用工作邮箱。我们很少发邮件,只在有值得一说的消息时才发。

有问题请发邮件到hello@teamonly.dev,会有真人回复。