实现服务端解密的 KeePass 网页查看器,包含登录门户口令与验证码、RSA+会话级 AES 加密通道、审计日志持久化、HTTPS 自动证书、Docker 部署配置及端到端测试。
77 行
2.8 KiB
HTML
77 行
2.8 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="zh-CN">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>审计日志 - KeePass 查看器</title>
|
|
<link rel="stylesheet" href="/style.css">
|
|
</head>
|
|
<body>
|
|
<div class="audit-page">
|
|
<header class="audit-header">
|
|
<h1>审计日志</h1>
|
|
<div class="audit-actions">
|
|
<a href="/" class="btn-ghost">← 返回主界面</a>
|
|
<button id="logoutBtn" class="btn-ghost">退出</button>
|
|
</div>
|
|
</header>
|
|
|
|
<section class="audit-filters">
|
|
<input id="fIp" type="text" placeholder="来源 IP(模糊)">
|
|
<select id="fIpType">
|
|
<option value="">全部 IP 类型</option>
|
|
<option value="external">外网</option>
|
|
<option value="internal">内网</option>
|
|
</select>
|
|
<select id="fCode">
|
|
<option value="">全部错误码</option>
|
|
<option value="OK">OK(成功)</option>
|
|
<option value="AUTH_APP_FAIL">AUTH_APP_FAIL</option>
|
|
<option value="CAPTCHA_FAIL">CAPTCHA_FAIL</option>
|
|
<option value="IP_BLOCKED">IP_BLOCKED</option>
|
|
<option value="AUTH_MASTER_FAIL">AUTH_MASTER_FAIL</option>
|
|
<option value="ENC_FAIL">ENC_FAIL</option>
|
|
<option value="MISSING">MISSING</option>
|
|
<option value="KEY_EXPIRED">KEY_EXPIRED</option>
|
|
</select>
|
|
<select id="fMethod">
|
|
<option value="">全部方法</option>
|
|
<option value="GET">GET</option>
|
|
<option value="POST">POST</option>
|
|
</select>
|
|
<input id="fPath" type="text" placeholder="路径关键字">
|
|
<label class="chk"><input id="fFail" type="checkbox"> 仅失败</label>
|
|
<input id="fFrom" type="datetime-local" title="起始时间">
|
|
<input id="fTo" type="datetime-local" title="结束时间">
|
|
<button id="searchBtn" class="btn">查询</button>
|
|
<button id="resetBtn" class="btn-ghost">重置</button>
|
|
</section>
|
|
|
|
<section class="audit-blocks" id="blocksBox" style="display:none">
|
|
<h3>当前被封锁 IP</h3>
|
|
<ul id="blocksList"></ul>
|
|
</section>
|
|
|
|
<section class="audit-table-wrap">
|
|
<table class="audit-table">
|
|
<thead>
|
|
<tr>
|
|
<th>时间</th><th>来源 IP</th><th>类型</th><th>直连地址</th><th>XFF</th>
|
|
<th>方法</th><th>路径</th><th>状态码</th><th>错误码</th><th>UA</th><th>详情</th><th>会话</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody id="auditBody"></tbody>
|
|
</table>
|
|
<div class="audit-pager">
|
|
<button id="prevPage" class="btn-ghost">上一页</button>
|
|
<span id="pageInfo">第 1 页</span>
|
|
<button id="nextPage" class="btn-ghost">下一页</button>
|
|
<span id="totalInfo"></span>
|
|
<span id="indexInfo" class="index-info"></span>
|
|
</div>
|
|
</section>
|
|
</div>
|
|
<script src="/audit.js"></script>
|
|
</body>
|
|
</html>
|