## 实现计划:在请求列表中显示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. 实现时间线 - 步骤1:20分钟(修改后端数据结构) - 步骤2:25分钟(实现DNSSEC记录追踪) - 步骤3:15分钟(修改API响应格式) - 步骤4:15分钟(修改前端显示逻辑) - 步骤5:10分钟(测试实现) 通过以上实现,请求列表将能够正确显示使用了DNSSEC的域名,提高DNS查询的安全性可视化,方便管理员监控和管理。