Commit Graph

36 Commits

Author SHA1 Message Date
shenjianZ e936fbc140 feat(docker): 安装 tzdata 并设置 TZ=Asia/Shanghai 以让 Node.js 使用上海时区 2025-08-02 10:42:43 +08:00
shenjianZ a96aa6e073 feat(docker): 安装 tzdata 并设置 TZ=Asia/Shanghai 以让 Node.js 使用上海时区 2025-08-02 10:00:47 +08:00
shenjianZ 893fac1ff2 feat(docker): 安装 tzdata 并设置 TZ=Asia/Shanghai 以让 Node.js 使用上海时区 2025-08-02 09:56:38 +08:00
shenjianZ be59fa85de feat(backend): 实施连接与数据层速率限制
为了增强服务的稳定性和安全性,防止滥用行为,本次提交引入了两个核心的速率限制和验证机制:

1. **连接层验证 (`onConnect`)**
   - **IP 速率限制**:在 `connectionValidator.js` 中实现。限制单个 IP 地址每分钟最多 20 次连接,超过限制将临时封禁 5 分钟,以防御暴力连接攻击。
   - **反向 DNS (PTR) 检查**:要求所有公共网络连接必须具有有效的 PTR 记录,用于区分合法邮件服务器和僵尸网络。

2. **数据层验证 (`onData`)**
   - **发件人域速率限制**:在 `rateLimiter.js` 中实现。在邮件数据传输阶段,限制单个发件人域名每分钟最多发送 10 封邮件,超过限制的域名将被临时封禁 5 分钟,以防止单一来源的邮件泛滥。

**主要变更:**
- 新增 `backend/connectionValidator.js`:处理连接时的 IP 速率限制和 PTR 验证。
- 新增 `backend/rateLimiter.js`:在 `onData` 阶段对发件人域名进行速率限制。
- 在 `backend/app.js` 的 `SMTPServer` 配置中集成了 `onConnect` 验证钩子。
- 在 `backend/saveEmail.js` 中调用速率限制器,并在超限时拒绝邮件。
- 更新日志模块 (`logger.js`, `db.js`),输出更清晰,并记录安全相关事件。
- 新增 `backend/SECURITY_POLICIES.md` 文档,详细说明所有安全策略和可配置参数。
2025-08-01 22:59:40 +08:00
shenjianZ 3ad3849fde feat:fix README.md 2025-07-31 11:48:45 +08:00
shenjianZ 99504e53ea feat:fix README.md 2025-07-31 11:46:43 +08:00
shenjianZ 4787c9e2e0 feat:fix README.md 2025-07-31 11:45:40 +08:00
shenjianZ f8a4fb3561 feat:fix README.md 2025-07-31 11:44:51 +08:00
shenjianZ eecac11240 feat:fix docker-compose 2025-07-31 11:28:20 +08:00
shenjianZ 9ceb96d9c7 feat:fix docker-compose 2025-07-31 11:00:22 +08:00
shenjianZ 5b7cc39496 feat:fix docker-compose.full.yml 2025-07-31 09:05:09 +08:00
shenjianZ a7d8774157 feat:fix docker-compose.full.yml 2025-07-31 08:44:10 +08:00
shenjianZ 91b3bc9640 feat:add certs dir 2025-07-31 08:13:51 +08:00
shenjianZ 2b84fffacb feat:fix docker-compose-full.yml 2025-07-31 07:39:19 +08:00
shenjianZ d9a744dda4 nothing 2025-07-30 18:13:03 +08:00
shenjianZ f39b1f0246 feat:fix frontend .env 2025-07-30 18:06:20 +08:00
shenjianZ 90ec3e5fc5 nothing 2025-07-30 16:32:58 +08:00
shenjianZ 1f01ff97ad feat: fix WebSocket connection timeout 600s,overwrite 60s timeout 2025-07-30 16:23:10 +08:00
shenjianZ 5e89bff405 feat: fix compose.env and compsoe.yml 2025-07-30 14:15:15 +08:00
shenjianZ a681494b82 feat: fix compose.env 2025-07-30 14:11:44 +08:00
shenjianZ 2994a48e19 feat: fix compose.yml ;add frontend .env properties 2025-07-30 13:53:21 +08:00
shenjianZ 0e267b923c feat: fix compose.yml 2025-07-29 22:12:21 +08:00
shenjianZ 4b00824463 feat: fix compose.yml 2025-07-29 22:11:41 +08:00
shenjianZ eb5150dc15 feat: fix compose yml 2025-07-29 16:58:50 +08:00
shenjianZ 7ee074249f feat: fix backend sql error;fix frontend i18n display error 2025-07-29 15:35:34 +08:00
shenjianZ 32320e1cb0 feat: Implement frontend Markdown rendering. fix: Refined email view styling, includingelement spacing and layout, and added a dev-only sample message. 2025-07-29 13:12:39 +08:00
shenjianZ 8c649adf93 feat: Enhance backend with request/SQL logging via morgan/winston and fix frontend by correctly rendering email Markdown content using the 'marked' library. 2025-07-29 12:44:56 +08:00
shenjianZ c38a4f0f62 feat: add docker compose full deploy 2025-07-29 08:39:20 +08:00
shenjianZ a186439b84 feat: add switch with zh|en 2025-07-28 23:36:33 +08:00
shenjianZ 7bfb909532 feat: fix sender|recipient display 2025-07-28 22:51:23 +08:00
shenjianZ d85b531e24 feat(frontend): Add Progressive Web App (PWA) support. Includes a service worker for offline capabilities, a web manifest, and icons for a native-like, installable app experience 2025-07-28 19:46:46 +08:00
shenjianZ 59d0ae2a88 feat: fix logo disply 2025-07-28 16:47:34 +08:00
shenjianZ 82659c600a feat: fix android display 2025-07-28 15:46:43 +08:00
shenjianZ f1b39d22a5 feat: fix backend some error;fix frontend display error 2025-07-28 14:14:11 +08:00
shenjianZ eeb3b4b0df deploy success - first version successed 2025-07-28 13:17:54 +08:00
shenjianZ 2999e562c7 mailu branch failed 2025-07-28 12:18:54 +08:00