一、系统核心功能概览
1、二级域名全生命周期管控
2、多类型DNS解析记录管理
3、SSL证书自助申请,支持HTTPS访问
4、多厂商DNS服务商对接
5、完整后台管理与OAuth登录拓展
-
管理员后台:集中管控用户账号、域名资源池、DNS服务商接口、全部操作日志记录,所有变更行为留有日志便于追溯排查问题。
-
阿宅OAuth登录:支持对接阿宅OAuth2.0账号中心,开启之后用户可以直接使用阿宅账号一键登录系统,不用重复注册本地账号,适合多系统统一账号体系的场景。
-
在线升级功能:后台内置系统更新检测,一键获取新版本并且完成升级,不需要手动下载源码覆盖上传,降低后期维护成本。
二、运行环境要求
三、简易安装部署步骤
你的域名/admin。默认管理员账号:azhai,默认密码:azhai123。强烈建议首次登录后立刻修改默认管理员密码,避免站点被入侵风险。四、适用使用场景
-
个人站长自用:给自己、团队小伙伴批量分配二级域名,统一管理解析,省去反复登录云DNS控制台。
-
小型服务搭建:搭建私有二级域名分发服务,对内小范围开放子域名申请。
-
项目开发测试环境:给测试项目、演示站点快速分配独立子域名,统一管控生命周期。
-
搭配其他程序联动:依托OAuth能力,可以和其他自研站点打通统一账号登录体系。
五、项目优缺点总结

源码安全检测报告
已检测- 请求参数直接进入执行函数未发现
- 请求参数直接进入文件包含未发现
- 变量函数执行请求参数未发现
- 请求参数批量覆盖变量未发现
- 编码载荷后执行(混淆特征)未发现
- 回连裸 IP 地址未发现
- 配置预加载文件(隐蔽后门手法)未发现
- 向文件写入 PHP 代码未发现
- 远程升级 / 授权下发地址
config.php:44配置中声明了远程检查更新或下载升级包的地址。若同时存在「下载 → 解压 → 覆盖站点文件」的逻辑,则厂商(或劫持该域名的人)可随时向你的站点写入任意 PHP 文件,属于可远程控制的交付通道。
'check_url' => 'https://update.azhai.de/api/check.php', ← 与「远程下发并覆盖站点文件」同源,仅作线索保留建议:核实域名归属:是不是作者自有域名?不是自有域名的升级/授权地址要特别警惕,建议直接移除或改成本地升级。
- 远程升级 / 授权下发地址
config.php:46配置中声明了远程检查更新或下载升级包的地址。若同时存在「下载 → 解压 → 覆盖站点文件」的逻辑,则厂商(或劫持该域名的人)可随时向你的站点写入任意 PHP 文件,属于可远程控制的交付通道。
'download_url' => 'https://update.azhai.de/api/download.php', ← 与「远程下发并覆盖站点文件」同源,仅作线索保留建议:核实域名归属:是不是作者自有域名?不是自有域名的升级/授权地址要特别警惕,建议直接移除或改成本地升级。
- 硬编码的长令牌 / 密钥
config.php:48配置里直接写入 32 位以上的真实令牌(非 CHANGE_THIS 占位符)。这类凭据会随源码包一起分发,所有拿到包的人都持有同一枚密钥,等于共享口令;若厂商服务端做校验,还存在被冒用的风险。
'token' => 'a3896c4716bb19974e5f7563fbe1efe3095fe473f77a9ac365fadde289d31dad',建议:把令牌移到配置项或环境变量里,并且立刻轮换这个已经外泄的值。
- 远程升级 / 授权下发地址
config.php:62配置中声明了远程检查更新或下载升级包的地址。若同时存在「下载 → 解压 → 覆盖站点文件」的逻辑,则厂商(或劫持该域名的人)可随时向你的站点写入任意 PHP 文件,属于可远程控制的交付通道。
'authorize_url' => 'https://oauth.azhai.de/authorize.php', ← 与「远程下发并覆盖站点文件」同源,仅作线索保留建议:核实域名归属:是不是作者自有域名?不是自有域名的升级/授权地址要特别警惕,建议直接移除或改成本地升级。
- X-Forwarded-For 无条件覆盖客户端 IP
includes\database.php:46直接用 X-Forwarded-For 覆盖 REMOTE_ADDR 且未校验来源是否为可信代理。该请求头由客户端自行发送、可任意伪造,会导致:IP 黑名单 / 限流被绕过、操作日志记录的 IP 全部失真(出事后无法溯源)。若站点确实在反向代理后,必须把代理 IP 列入白名单后再信任该头。
$_SERVER['REMOTE_ADDR'] = trim($get_HTTP_X_FORWARDED_FOR[0]);建议:只在明确可信的反向代理之后才解析 X-Forwarded-For,并且取最后一段可信 IP;其余情况一律用 REMOTE_ADDR。
- 远程下发并覆盖站点文件(可远程控制通道)
includes\updater.php:25该文件同时具备:从远程地址下载内容 + 解压/写入 + 覆盖站点目录。这构成一条厂商(或劫持者)可随时向你站点写入任意代码的通道。若下载内容未强制校验签名/哈希,风险等同预留后门;即便有哈希,也应视为「厂商保留的远程控制能力」并明确告知买家。
下载远程包 + ZipArchive 解压 + 覆盖 dirname(__DIR__) 站点目录建议:这是可远程控制站点文件的通道,强烈建议整段移除。短期无法移除时,至少加上下载包签名校验与下载域名白名单,并且不要覆盖站点根目录。
- 疑似硬编码凭据
config.php:33源码里写死的密码、密钥或令牌。买家拿到包就等于拿到凭据,建议改为配置文件并提示用户修改。
'app_key' => 'CHANGE_THIS_TO_A_RANDOM_64_CHARACTER_SECRET',建议:先确认是不是占位符(例如 CHANGE_THIS…)。如果是真实凭据,移出代码库并轮换;如果是示例值,注释里写明。
- 疑似硬编码凭据
config.php:60源码里写死的密码、密钥或令牌。买家拿到包就等于拿到凭据,建议改为配置文件并提示用户修改。
'client_secret' => '去oauth.azhai.de申请阿宅登录',建议:先确认是不是占位符(例如 CHANGE_THIS…)。如果是真实凭据,移出代码库并轮换;如果是示例值,注释里写明。
- 数据库脚本内置默认管理员账号
database.sql:42随包分发的 SQL 里带着可直接登录的后台管理员密码哈希。若安装后不修改,任何人都能用公开的默认口令进入后台,等于把后台交出去。
INSERT INTO admin_users ... VALUES (... $2y$12$.rDJaZB3X0AyGOrhB0nMv.U.2Tu17Oj6zAxWKnM5IX3YuPmw0CW6G ...)建议:删掉 SQL 里内置的默认管理员账号与密码哈希,改成安装时强制设置管理员。默认账号是被人拿着现成密码直接进后台的入口。
- 文件扩展名与实际内容不符
assets\img\bg.jpg:1扩展名与文件真实格式不一致。多数情况只是命名不规范,但也可能是伪装——例如把脚本改名成图片以躲过检测。此处需确认该文件确实可正常解析。
扩展名 .jpg 但实际是 .png建议:把文件扩展名改成与真实内容一致。扩展名与内容不符会绕过基于后缀的校验,也可能让服务器按错误类型解析。
- 解码 / 解压函数
includes\functions.php:186编码本身是中性的(缓存、序列化、压缩、XML-RPC 都会用),但与 eval 相邻时风险陡增。本项仅提示,需结合上下文判断。
$raw = base64_decode(建议:确认解码/解压的数据来源可信;尤其不要和 eval 之类组合出现,组合起来就是混淆执行。
- 解码 / 解压函数
includes\dns\DnsManager.php:3450编码本身是中性的(缓存、序列化、压缩、XML-RPC 都会用),但与 eval 相邻时风险陡增。本项仅提示,需结合上下文判断。
base64_decode(建议:确认解码/解压的数据来源可信;尤其不要和 eval 之类组合出现,组合起来就是混淆执行。