This commit is contained in:
Alex Yang
2026-01-16 11:09:11 +08:00
parent 8159577be0
commit cdac4fcf43
284 changed files with 2813570 additions and 14 deletions

View File

@@ -0,0 +1,73 @@
## 实现计划在请求列表中显示DNSSEC标志
### 1. 需求分析
-`enableDNSSEC=true`请求列表中返回了DNSKEY的域名显示绿色的DNSSEC标志
- 标志应显示在域名名称旁边
- 保持现有界面风格一致
### 2. 实现步骤
#### 步骤1修改后端数据结构
-`dns/server.go`中扩展`BlockedDomain`结构体,添加`DNSSEC bool`字段
- 修改`GetTopResolvedDomains`函数返回包含DNSSEC标志的数据
- 记录每个域名是否使用了DNSSEC
#### 步骤2实现DNSSEC记录追踪
-`handleDNSRequest`函数中当检测到DNSSEC记录时更新域名的DNSSEC标志
- 添加一个新的映射表记录每个域名的DNSSEC使用情况
#### 步骤3修改API响应格式
- 修改`http/server.go`中的`handleTopDomains``handleTopResolvedDomains`函数
- 在返回的数据中添加`dnssec`字段
#### 步骤4修改前端显示逻辑
- 修改`static/js/dashboard.js`中的`updateTopDomainsTable`函数
- 在域名名称后添加DNSSEC标志
- 使用Font Awesome的锁图标绿色显示
#### 步骤5测试实现
- 编译并运行DNS服务器
- 访问Web界面检查请求列表
- 验证DNSSEC标志是否正确显示
### 3. 技术细节
#### 3.1 后端实现
- **文件**`/root/dns/dns/server.go`
- **修改内容**
- 扩展数据结构添加DNSSEC字段
- 实现DNSSEC记录追踪
- 修改API响应格式
#### 3.2 前端实现
- **文件**`/root/dns/static/js/dashboard.js`
- **修改内容**
- 修改`updateTopDomainsTable`函数
- 添加DNSSEC标志显示逻辑
- 使用条件渲染仅当dnssec为true时显示
#### 3.3 DNSSEC检测方法
- 检查响应中是否包含DNSKEY或RRSIG记录
- 记录每个域名的DNSSEC使用情况
- 在返回请求列表时包含该信息
### 4. 预期效果
- 请求列表中使用DNSSEC的域名显示绿色锁图标
- 标志与现有界面风格协调
- 性能不受影响
- 与现有功能兼容
### 5. 注意事项
- 确保DNSSEC标志的视觉设计与现有界面一致
- 确保标志在各种屏幕尺寸下都能正确显示
- 考虑添加悬停提示,说明该标志的含义
- 确保性能不受影响,数据更新高效
### 6. 实现时间线
- 步骤120分钟修改后端数据结构
- 步骤225分钟实现DNSSEC记录追踪
- 步骤315分钟修改API响应格式
- 步骤415分钟修改前端显示逻辑
- 步骤510分钟测试实现
通过以上实现请求列表将能够正确显示使用了DNSSEC的域名提高DNS查询的安全性可视化方便管理员监控和管理。