fix: 终审修复——网关代理主机不可位移(堵 SSRF/令牌外泄)+onError 统一错误形状

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
lovefyf
2026-08-13 07:59:30 +08:00
co-authored by Claude Opus 5
parent ec0293fb79
commit 41d58a9bb9
3 changed files with 37 additions and 4 deletions
+5
View File
@@ -7,6 +7,11 @@ import { uploadRoutes } from '../modules/upload/routes';
export function buildApp(): Hono {
registerHealthCheck('nats', checkNats);
const app = new Hono();
// 统一错误形状:任何未捕获异常都收敛成 {error,message} 的 500,不漏 Hono 默认裸文本/栈
app.onError((err, c) => {
console.error(err);
return c.json({ error: 'internal_error', message: '服务内部错误——已记录,稍后重试或联系维护' }, 500);
});
app.route('/health', healthRoute()); // 公开:不过 requireAuth
// 顺序要紧:/api/upload 必须先于 /api 代理挂载,否则被代理的 catch-all 吞掉
app.route('/api/upload', uploadRoutes());