网站访问认证
网站访问认证
功能简介
网站访问认证用于为受保护网站开启密码访问。开启网站密码后,请使用密码访问该网站。认证账号由本页面统一管理(用户名 + 密码),认证方式与认证路径前缀在网站编辑页配置。
前置条件
认证账号需要配合网站的「网站密码访问」开关一起使用:
- 进入网站编辑页,将 网站密码访问 设置为开启(开启后该网站都使用密码进行访问,并请添加账号和密码)。
- 选择 认证方式:
- Authorization 模式(浏览器弹窗):使用标准 HTTP Basic Auth,浏览器弹窗进行认证。
- Custom 模式(自定义页面):使用自定义登录页面,适用于后端网站也使用 Authorization 认证时避免冲突。
- 设置 认证路径前缀:自定义 HTTP 认证的访问路径前缀,用于隐藏系统特征。留空则后端自动生成随机路径。格式要求:以
/_开头,至少 10 个字符,只能包含小写字母、数字、下划线。示例:/_waf_a7k3m9x2。 - 按需设置 保护范围 与 路径清单(默认整站,详见下方「保护范围与免密 IP 组」)。
- 按需设置 登录有效期 / 空闲超时 / 绑定登录 IP,详见下方「登录时效设置」。
- 在本页面添加访问账号(用户名 + 密码)。
操作步骤
新建账号
- 点击 新建。
- 填写 用户名 与 密码。
- 点击 确定 保存。
提示:密码中不能包含冒号
:,否则会提示「密码不合法」。
查询 / 编辑 / 删除
- 在顶部 用户名 输入框中输入关键字,点击 搜索 进行查询。
- 在列表操作列点击 编辑 修改账号,点击 删除 删除账号。
保护范围与免密 IP 组
默认(也是升级前的原有行为)是整站开启:开关打开后所有路径都要密码。两种按路径开启的方式:
| 保护范围 | 行为 | 典型场景 |
|---|---|---|
| 整站开启 | 所有路径都要密码(默认)。 | 内部系统、测试环境整体上锁。 |
| 仅指定路径需要密码 | 只有命中路径清单的请求要密码,其余直接访问。 | 只保护 /admin、/api/manage 这类后台与敏感接口。 |
| 除指定路径外全站需要密码 | 命中路径清单的请求直接访问,其余都要密码。 | 只放开 /healthz 给监控探针,别的全站上锁。 |
路径清单写法
每行一条,也支持逗号分隔;不区分大小写;最多 50 条、每条最长 256 字符。两种写法:
- 普通路径(不含
*):按整段目录匹配。写/admin保护/admin和它下面的所有子路径,但不会误伤/adminconsole。 - 通配路径(含
*):按通配匹配,*可以跨越目录。*.php匹配所有 PHP 页面;/api/*/private匹配/api/v1/private;/manage*匹配/manage、/managex、/manage/panel。
/admin
/api/manage
*.php清单为空时的兜底
保护范围选了「仅指定路径」但清单是空的,会按整站保护并在系统日志里提示——配置不完整时不会让这道门静默失效。「除指定路径外」的清单为空同样等于整站,这是字面语义。
ACME 证书签发
整站开启密码时,HTTP-01 证书校验路径也会被拦(原有行为)。需要自动签发/续期证书的站点,可以用「除指定路径外」模式把 /.well-known/acme-challenge 放进清单,或改用 DNS-01 方式。
免密 IP 组
免密 IP 组用于给无法登录的调用方开直通道:命中所选 IP 组的来源跳过密码校验直接访问(对所有保护范围生效)。适合内网监控、健康检查、采集器这类程序化访问。
- IP 组在「IP组」页面统一维护,改一次组、所有引用它的站点同时生效。
- 组被删除后自动回落为需要密码,不会敞开门。
- 判定用的客户端 IP 与登录时效一样,按网站「真实IP来源」解析。
登录时效设置
在网站编辑页的「网站密码访问」中配置,控制一次登录能维持多久。
| 设置 | 默认值 | 说明 |
|---|---|---|
| 登录有效期 | 1440 分钟(24 小时) | 从登录那一刻算起,超过这个时长必须重新输入密码,与是否一直在使用无关。 |
| 空闲超时 | 0(不启用) | 多久没有任何请求就自动掉线。填 0 表示不启用,只受登录有效期约束。仅 Custom 模式支持。 |
| 绑定登录 IP | 开启 | 开启后登录凭据换个 IP 就失效,可防止 Cookie 被复制到别处使用。 |
为什么 Authorization 模式不支持空闲超时
HTTP Basic 协议下,浏览器会把密码缓存起来、每个请求原样重发,服务端无法判断用户是不是真的离开了,因此「空闲」这个状态在该模式下不成立。需要空闲超时请改用 Custom 模式。
绑定登录 IP 与 CDN
认证使用的客户端 IP 会按网站的「真实IP来源」配置解析,与访问日志中的来源 IP 同源。网站挂在 CDN 或前置 Nginx 后面时,绑定的是访客真实 IP:访客切换基站、家宽重新拨号都会导致掉线。频繁掉线可以关掉这一项。
空闲超时的实际生效时间可能比设定值晚最多 1 分钟:为了避免每个请求都写一次数据库,最后活跃时间按 60 秒节流刷新。
在线会话
开启网站密码访问后,网站编辑页会显示当前通过密码登录的访客列表。
| 列 | 说明 |
|---|---|
| 用户名 / 认证方式 | 谁登录的,用的是浏览器弹窗还是自定义页面。 |
| 登录IP / 归属地 | 访客的真实 IP 与归属地(按网站「真实IP来源」解析)。 |
| 登录时间 / 最后活跃 / 到期时间 / 剩余时长 | 这次登录的时间线。剩余不足 10 分钟会标橙色。 |
| 状态 | 在线,或已失效(鼠标悬停可看到失效原因)。 |
支持三种下线方式:踢下线(单条会话)、踢该用户(该用户在本站点的全部会话)、全部踢下线(本站点所有访客,适用于怀疑密码泄露时的应急处理)。
踢下线的生效时间与限制
- 因存在最长 60 秒的会话缓存,踢下线最迟 60 秒生效。
- Authorization 模式(浏览器弹窗)下,踢下线的效果是强制对方重新输入一次密码。HTTP Basic 协议没有「登出」机制,服务端只能通过更换认证域(realm)让浏览器重新弹窗;对方用同一个账号密码仍可重新登录。要让某人彻底进不来,请删除他的账号。
- Custom 模式(自定义页面)下,踢下线是干净的一次性失效,对方必须重新登录。
账号被删除或修改(改名 / 改密)时,该账号的在线会话会自动失效,无需手动踢下线。
已失效的会话记录保留 30 天供事后排查,之后自动清理。
安全审计
登录成功、密码错误、触发锁定、踢下线、会话到期都会记入 系统设置 → 安全审计,分类为「网站密码访问」,可按分类、事件、账号、来源 IP、站点筛选。
未登录被拦截也会记录,但做了「同 IP + 同站点 5 分钟一条」的节流——一次目录扫描就是几千个未登录请求,不节流会把审计表刷爆,真正有价值的记录反而被淹没。
字段说明
认证账号(本页面)
| 字段 | 说明 |
|---|---|
| 用户名 | 访问网站时使用的登录用户名。 |
| 密码 | 访问网站时使用的登录密码,不能包含冒号 :。 |
网站编辑页相关设置
| 字段 | 说明 |
|---|---|
| 网站密码访问 | 开启后该网站都使用密码进行访问,并请添加账号和密码。 |
| 认证方式 | Authorization 模式:标准 HTTP Basic Auth(浏览器弹窗认证);Custom 模式:自定义登录页面,适用于后端网站也使用 Authorization 认证时避免冲突。 |
| 认证路径前缀 | 自定义 HTTP 认证的访问路径前缀,用于隐藏系统特征。留空则后端自动生成随机路径。格式:以 /_ 开头,至少 10 个字符,只能包含小写字母、数字、下划线。示例:/_waf_a7k3m9x2。 |
| 保护范围 | 整站开启(默认)/ 仅指定路径需要密码 / 除指定路径外全站需要密码。 |
| 路径清单 | 按路径开启时的路径模式,每行一条(支持逗号分隔)。普通路径按整段目录匹配;含 * 的条目按通配匹配且 * 可跨目录。 |
| 免密 IP 组 | 命中该 IP 组的来源跳过密码校验直接访问,空表示不启用。 |
| 登录有效期 | 一次登录最长维持多久(分钟),默认 1440(24 小时)。 |
| 空闲超时 | 多久没有请求就自动掉线(分钟),0 表示不启用。仅 Custom 模式支持。 |
| 绑定登录 IP | 登录凭据是否绑定登录时的 IP,默认开启。 |
常见问题
- 密码提示「密码不合法」? 密码中不能包含冒号
:,请去掉冒号后重试。 - 添加了账号但网站不需要密码? 请确认已在网站编辑页开启「网站密码访问」。
- 何时使用 Custom 模式? 当后端网站本身也使用 Authorization 认证时,使用 Custom 模式(自定义登录页面)可避免认证冲突。
- 踢了下线,对方好像还能访问? 会话缓存最长 60 秒,稍等一下再看。如果用的是 Authorization 模式,请注意该模式下踢下线只能强制对方重新输入密码,对方知道账号密码就能再登录进来——要彻底阻止请删除账号。
- 访客频繁被要求重新登录? 多半是「绑定登录 IP」加上访客网络地址在变(移动网络切基站、家宽重新拨号)。可以在网站编辑页关掉「绑定登录 IP」。
- 配了「仅指定路径」却全站都要密码? 路径清单是空的会按整站兜底,请在网站编辑页补全路径清单。
- 写了
/admin会保护/adminconsole吗? 不会。普通路径按整段目录匹配,只有/admin及其子路径受保护。要连兄弟路径一起保护就显式写/admin*。 - 升级后原来登录的人要重新登录? 是的,升级会使已有的登录凭据失效一次,之后按你设置的有效期正常计算。
更新记录
| 更新日期 | 适用版本 | 更新内容 |
|---|---|---|
| 2026-10-12 | v1.3.25-beta.8 | 新增「保护范围与免密 IP 组」:网站密码访问支持按路径开启(整站 / 仅指定路径 / 除指定路径外),路径清单支持 * 通配;可叠加免密 IP 组让指定来源跳过密码。会话时效(有效期/空闲超时/绑定登录 IP)已自 v1.3.25-beta.5 起提供。 |
「适用版本」说明:
vX.Y.Z表示该功能自该版本起可用;> vX.Y.Z表示功能已并入代码、尚未随版本发布,将随下一个版本生效。
