diff --git a/GUIDE.md b/GUIDE.md new file mode 100644 index 0000000..a96eefe --- /dev/null +++ b/GUIDE.md @@ -0,0 +1,138 @@ +# SecHome · 安全屋 —— 操作指南 + +本指南面向站点使用者与管理员,按「前台日常使用」→「后台管理」→「安全运维」→「常见问题」组织。功能以当前版本为准,细节以页面实际为准。 + +## 一、前台日常使用 + +### 1. 首页与板块 + +- 首页是板块选择页:**科普库 / 红队库 / 蓝队库 / 工具库**,另含文章库入口 +- 顶部组件由站长设置,可能是三种之一:天气、访客信息、空白精简 +- 右下角「☾ / ☀」按钮切换昼夜主题;「↑」回到顶部 + +### 2. 库页面(科普 / 红队 / 蓝队) + +每个库内分四个分区(Tab): + +- **导航区**:常用链接区块,点卡片直达 +- **内部功能区**:本站自带工具,点击进入工具页;从本入口进入时左上角自动变为「返回上一页」 +- **文章区**:分发到该库的文章 +- **外部工具区**:推荐的外部站点/在线工具 + +页顶搜索条可切换搜索引擎后回车直接搜索。 + +### 3. 功能区工具(纯前端、隐私优先) + +入口:首页「工具库」板块 → 完整功能区;或各库「内部功能区」。 + +| 工具 | 常见用法 | +| ------------- | ------------------------------------------------------------------------------------------------------------------ | +| 编码 / 加解密 | Base64 / Base32 / URL / Unicode 编解码,MD5 / SHA 摘要 | +| 随机密码生成 | 选字符集与长度,批量生成 | +| 二维码生成器 | 输入内容生成,可放大预览、下载 PNG | +| 杀软识别 | 在 Windows 执行 `tasklist` 后粘贴输出,识别对应安全软件 | +| IP 地址处理 | 粘贴日志/拖入文件,自动提取 IPv4 并按 /24 段聚合统计(内网/CDN/公网分类);填“重点匹配 IP”可置顶标红;支持导出 TXT | +| 辅助维权 | 反弹 Shell、凭证提取、持久化参考(仅供授权测试学习) | +| 国密加解密 | SM2 / SM3 / SM4(SM1 为不公开硬件算法,无法软件实现) | + +- 所有运算**在浏览器本地完成**,内容不上传服务器;可放心处理本地大文件 +- 离线完全可用需在 `assets/js/` 放入第三方库(见下文“常见问题”),否则在线自动回退 CDN + +### 4. 文章库 + +- 左侧标题栏按分区展示,中间为当前文章段落目录,右侧为正文 +- 顶部「☰ 标题栏 / ≡ 段落」按钮可开关左右栏 +- 正文插图上传后自动插入 `![图片说明](data/articles/img/文件名.png)` 引用 + +## 二、后台管理 + +入口:站点域名 `/admin`,登录后进入;顶栏依次为: + +### 1. 导航内容管理(nav.php) + +- 顶部切换当前要编辑的库(科普 / 红队 / 蓝队) +- 每个块可改标题、增删链接、拖拽排序;删除后有确认弹窗 +- **批量导入**:在导入面板粘贴文本,格式支持 `名称 网址` 或 `名称 | 网址`,自动拆分成导航块;解析后可核对再「保存全部修改」 +- 操作结果以右下角 Toast 提示,且保持原滚动位置 + +### 2. 功能区管理(tools.php) + +- 添加工具:填写名称、图标(emoji)、简介、**入口地址**与**展示库范围**(未勾选=所有库通用) + - 站内页面:填 `codec.html` 等相对地址(工具本体放在 `func/`) + - 外部网站:填完整 `https://...` 并勾选“外链新窗口打开” +- 可启停、拖拽排序;停用后前台立即隐藏 + +### 3. 文章管理(articles.php) + +- 分区、标题、摘要与 Markdown 正文;勾选「展示到库首页」决定分发到哪些库 +- 上传图片:先选择 `data/articles/img`,上传成功后自动插入正文引用 +- 支持置顶与排序;左侧可拖拽文章到不同分区 + +### 4. 外部工具(exttools.php) + +- 维护各库推荐的外部站点:名称、网址、简介、分组(栏目)、展示范围(cat_keys) +- 保存后库首页「外部工具区」即时更新;同样支持批量导入 + +### 5. 内容与顺序(content.php) + +集中站点配置: + +- **站点信息**:站名、口号、站长提示总开关 +- **板块**:四个库 + 文章库的名称、说明、图标与顺序 +- **站点 logo**:上传后全局生效(浏览器标签图标与各页面 logo 同步,**含静态工具页**) +- **名言库**:编辑 `data/quota.txt` +- **底部信息**:版权、ICP、公安备案等 +- **首页顶部组件**:天气(默认)/ 访客信息 / 空白精简 +- **修改密码**:建议首次登录即修改默认 `admin/admin123` + +### 6. 访问信息(visits.php)—— 日志与安全 + +**访问概况**:累计访问 / 独立 IP / 今日访问 / 黑名单规则数。 +**访问记录**: + +- 完整模式逐条明细;精简模式按 IP 聚合(最近访问 / 次数) +- 支持 IP 模糊筛选、URL/方法关键词搜索、分页 +- 日志按行追加写于 `data/vistors.log`,无上限;可一键清空 + +**自动风控规则**(阈值到达即永久封禁): +| 规则 | 默认 | 建议 | +|---|---|---| +| 后台登录失败 | 启用,阈值 10 | 5–20 | +| 前台 404 | 启用,阈值 100 | 50–300 | +| 请求频率(60 秒) | 关闭 | 多人共享出口 IP 建议保持关闭 | + +- 每条可独立启用/关闭并随时改阈值,保存即时生效 +- 同一卡片下方可自定义“拦截提示”主文案与次行说明(留空=默认) + +**IP 黑名单**: + +- 支持三种写法:`203.0.113.7`、`203.0.113.0/24`、`203.0.113.*` +- 命中后**前台与后台(含登录页)一律拒绝**,统一显示风控提示页 +- 行首勾选可「移除选中」,一键移除全部“风控自动”,或「清空全部」 +- 自动封禁带“风控自动”徽标与原因备注;移除单 IP 时同步清除其风险计数 +- 底部可查看当前访问 IP 的登录失败 / 404 / 本分钟请求计数 + +## 三、安全运维 + +- **改口令**:登录后台 → 内容与顺序 → 修改密码(至少 6 位) +- **被自动风控误封**:从其它未被封的网络登录后台移除对应规则;或直接编辑数据库 `data/homepage.db` 中 `ip_blacklist` 表删除该行(同表可删除“风控自动”记录) +- **备份与升级**:站点数据集中在 `data/`(数据库、访问日志、上传、文章图片)。升级前备份整个 `data/` 目录即可无损迁移 +- **恢复出厂**:删除 `data/homepage.db`,刷新后自动重建默认内容 + +## 四、常见问题(FAQ) + +1. **登录提示“已被风控自动封禁,全站访问被拒绝”**:说明该 IP 登录失败达阈值,已被自动封禁。请从未被封的网络登录后台,在「访问信息 → IP 黑名单」移除即可。 +2. **想让某个 IP 永久无法访问**:后台「访问信息」加入黑名单(单 IP / 网段 / 通配段均可),即刻全站生效。 +3. **工具页图标不是自己的 logo**:后台「内容与顺序」上传过 logo 后,强刷(Ctrl+F5)工具页即可同步;浏览器对旧图标有缓存,可多刷新一次。 +4. **工具页想完全离线使用**:把第三方库放入对应位置即可(在线未放时自动回退 CDN): + ``` + assets/js/qrcode.min.js qrcodejs 1.0.0 + assets/js/crypto-js.min.js crypto-js 4.2.0 + assets/js/sm-crypto/sm2.js|sm3.js|sm4.js sm-crypto 0.3.13 + ``` +5. **忘记后台密码**:数据库 `users` 表密码为 `md5(base64(明文))`;可将某行改为已知口令的散列后登录,随后在后台重设。 +6. **保存设置后提示去哪里了?** 后台操作提示统一显示为**右下角 Toast**(成功约 3.6 秒、失败约 6 秒自动消失),不会占用页面顶部。 + +--- + +更多项目背景见 [README.md](./README.md)。 diff --git a/README.md b/README.md new file mode 100644 index 0000000..8279039 --- /dev/null +++ b/README.md @@ -0,0 +1,77 @@ +# SecHome · 安全屋 + +一个**内网优先**的轻量个人安全导航站:导航、安全工具、文章笔记、访问审计与风控一体,数据全部本地存放(SQLite + 日志文件),无需任何第三方服务。 + +## 功能速览 + +### 导航 + +- **多库分区**:科普库 / 红队库 / 蓝队库三大板块 + 工具库 + 文章库 +- 每个库内分四区:**导航区 · 内部功能区 · 文章区 · 外部工具区** +- 首页顶部组件三种模式(天气 / 访客信息 / 空白精简)可后台切换 +- 快捷站点磁贴,悬停显示备注 + +### 功能区(纯前端,隐私优先) + +编码加解密、随机密码、二维码、杀软识别、IP 地址处理、辅助维权、国密加解密。 + +- 全部运算在**浏览器本地**完成,内容不上传服务器 +- 可直接拖入本地大文件处理 +- qrcodejs / crypto-js / sm-crypto 支持本地内置,缺失自动回退公共 CDN + +### 文章库 + +Markdown 写作与三栏阅读(标题栏 / 段落目录 / 正文),分区管理、置顶排序。 + +### 访问审计与风控 + +- 每次访问自动追加写入 `data/vistors.log`(完整保留、可归档) +- **访问信息页**:完整 / 精简(按 IP 聚合)双模式,IP 筛选与关键词搜索、分页 +- **IP 黑名单**:支持单 IP、CIDR 网段、星号通配;命中后**全站统一拦截**(含后台与登录页) +- **自动风控**:登录失败、404 次数、请求频率三条规则,阈值可配、即时启停;自动封禁支持一键 / 批量移除 +- 拦截提示文案可自定义;后台操作结果以右下角 Toast 反馈 + +### 后台管理 + +站点信息、板块名称/图标/说明、站点 logo(favicon 全局同步,含静态工具页)、名言条、备案信息、导航链接批量导入、工具登记(站内 / 外部)、文章维护、密码修改等。 + +## 快速开始 + +要求:PHP 7.4+(启用 `pdo_sqlite`)、现代浏览器。 + +```bash +cd SecHome +php -S 0.0.0.0:8000 +``` + +- 前台:http://localhost:8000 +- 后台:http://localhost:8000/admin +- 默认账号:`admin / admin123`,**首次登录后请立即修改** + +首次运行自动创建 `data/homepage.db` 并写入默认分类、示例数据;删除该库可重置站点内容。 + +## 目录结构 + +``` +├── index.php 首页(板块选择 / 顶部组件) +├── nav.php 库导航(科普 / 红队 / 蓝队) +├── func/ 功能区:静态工具页 + 动态工具首页 +├── article/ 文章库 +├── admin/ 后台管理 +├── api/ 轻量 JSON 接口(导航数据 / 站点元信息) +├── includes/ DB、布局、认证 +├── assets/ 样式与前端脚本 +└── data/ 站点数据(SQLite、访问日志、上传、文章图片)※ 升级前请保留 +``` + +## 数据与隐私 + +- 站点配置、分类、导航、文章、黑名单等存于 `data/homepage.db` +- 访问日志存于 `data/vistors.log`(不写入数据库) +- 上传的 logo、文章图片统一存于 `data/` 下 + +## 安全提示 + +- 请立即修改默认口令,并视需要更换密码散列方案 +- 自动风控可能误封**共享出口 IP**:请谨慎开启「请求频率」规则或调高阈值 +- 黑名单为全站拦截、无后台逃生通道;误封时请换网络登录后台移除,或直接编辑 `data/homepage.db` 中 `ip_blacklist` 表