soldosluka857
5bbc9fadfe
security: fix SSRF, restrict CORS, add rate limiting on auth endpoints
...
- Add isPrivateHost() to block image proxy requests to loopback/private/
link-local IPs (SSRF mitigation)
- Add isAllowedLocalPath() to restrict local file reads to configured
data/cache/media directories only
- CORS middleware now takes debug flag; wildcard only when debug=true,
production omits headers (same-origin enforced)
- Add per-IP sliding-window rate limiter (10 req/min) on login/register
and Emby AuthenticateByName endpoints
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-05-30 10:03:43 +08:00
..
2026-05-28 17:32:55 +08:00
2026-05-28 17:32:55 +08:00
2026-05-28 17:32:55 +08:00
2026-05-28 17:32:55 +08:00
2026-05-28 14:52:20 +08:00
2026-05-28 17:32:55 +08:00
2026-05-16 17:57:34 +08:00
2026-05-16 09:49:35 +00:00
2026-05-14 16:07:49 +00:00
2026-05-30 03:33:36 +08:00
2026-05-30 03:33:36 +08:00
2026-05-15 14:17:26 +00:00
2026-05-28 14:52:20 +08:00
2026-05-15 10:58:32 +00:00
2026-05-15 10:58:32 +00:00
2026-05-16 17:57:34 +08:00
2026-05-28 14:52:20 +08:00
2026-05-16 09:49:35 +00:00
2026-05-28 14:52:20 +08:00
2026-05-16 17:57:34 +08:00
2026-05-29 04:15:44 +08:00
2026-05-16 17:57:34 +08:00
2026-05-28 23:27:34 +08:00
2026-05-29 02:08:38 +08:00
2026-05-28 14:52:20 +08:00
2026-05-30 03:24:08 +08:00
2026-05-30 01:39:11 +08:00
2026-05-28 14:52:20 +08:00
2026-05-28 14:52:20 +08:00
2026-05-28 14:52:20 +08:00
2026-05-29 12:47:54 +08:00
2026-05-28 14:52:20 +08:00
2026-05-29 12:47:54 +08:00
2026-05-28 14:52:20 +08:00
2026-05-28 14:52:20 +08:00
2026-05-15 10:58:32 +00:00
2026-05-28 14:52:20 +08:00
2026-05-30 10:03:43 +08:00
2026-05-29 12:47:54 +08:00
2026-05-29 12:47:54 +08:00
2026-05-29 10:13:34 +08:00
2026-05-29 09:52:16 +08:00
2026-05-29 02:08:38 +08:00
2026-05-29 02:08:38 +08:00
2026-05-29 02:44:52 +08:00
2026-05-28 14:52:20 +08:00
2026-05-30 03:24:08 +08:00
2026-05-30 03:24:08 +08:00
2026-05-28 14:52:20 +08:00
2026-05-30 02:07:09 +08:00
2026-05-16 17:57:34 +08:00
2026-05-30 02:54:25 +08:00
2026-05-16 17:57:34 +08:00
2026-05-16 17:57:34 +08:00
2026-05-30 02:16:18 +08:00
2026-05-16 17:57:34 +08:00
2026-05-16 17:57:34 +08:00
2026-05-29 03:04:27 +08:00
2026-05-29 03:04:27 +08:00
2026-05-29 12:47:54 +08:00
2026-05-29 15:56:51 +08:00
2026-05-29 15:56:51 +08:00
2026-05-14 15:44:31 +00:00
2026-05-30 01:39:11 +08:00
2026-05-28 14:52:20 +08:00
2026-05-28 14:52:20 +08:00
2026-05-28 14:52:20 +08:00
2026-05-28 14:52:20 +08:00
2026-05-29 04:15:44 +08:00
2026-05-29 04:15:44 +08:00
2026-05-29 04:15:44 +08:00
2026-05-29 04:15:44 +08:00
2026-05-29 13:54:19 +08:00
2026-05-29 13:54:19 +08:00
2026-05-28 14:52:20 +08:00
2026-05-15 10:58:32 +00:00
2026-05-28 14:52:20 +08:00
2026-05-28 14:52:52 +08:00
2026-05-28 17:32:55 +08:00
2026-05-28 17:32:55 +08:00
2026-05-28 17:32:55 +08:00
2026-05-28 17:32:55 +08:00
2026-05-28 17:32:55 +08:00
2026-05-16 17:57:34 +08:00
2026-05-14 16:07:49 +00:00
2026-05-16 09:49:35 +00:00
2026-05-15 10:58:32 +00:00
2026-05-28 14:52:20 +08:00
2026-05-29 13:54:19 +08:00
2026-05-16 17:57:34 +08:00
2026-05-29 17:39:57 +08:00
2026-05-29 17:39:57 +08:00
2026-05-28 14:52:20 +08:00
2026-05-28 14:52:20 +08:00
2026-05-30 03:04:30 +08:00
2026-05-30 02:54:25 +08:00
2026-05-30 03:33:36 +08:00
2026-05-30 03:33:36 +08:00
2026-05-28 14:52:20 +08:00
2026-05-29 12:47:54 +08:00
2026-05-16 17:57:34 +08:00
2026-05-29 13:54:19 +08:00
2026-05-29 13:54:19 +08:00
2026-05-16 17:57:34 +08:00
2026-05-30 03:24:08 +08:00
2026-05-14 15:26:29 +00:00
2026-05-14 16:07:49 +00:00
2026-05-14 15:26:29 +00:00