Commit Graph
484 Commits
Author SHA1 Message Date
Troray 3e9fdbb7a0 fix: 强化 SSRF 防护、修复代理链路安全漏洞与代码质量问题
基于 Gemini Code Assist 审查建议,对代理链路进行全面安全加固与代码优化。

- [新增] `src/lib/server/ssrf.ts`: 使用 `dns.promises.lookup` 进行真实 IP 解析,
  替代原有的正则匹配,防御 DNS 重绑定、非十进制 IP 等绕过手段
- [新增] 为 `proxy/vod/m3u8`、`proxy/vod/key`、`video-proxy` 三个接口补齐 SSRF 校验,
  此前仅 `proxy-m3u8` 和 `proxy/vod/segment` 有防护
- [删除] `utils.ts` 中已弃用的 `isValidUrlForProxy` 函数

- 所有代理接口统一强制 SSRF 校验,不再仅限于 `source=directplay`

- 修复 `proxy/vod/segment` 中 `isCancelled` 为 `const` 导致流取消信号失效的问题
- 修复 `proxy-m3u8/route.ts` 中导入不存在的函数(`extractResolutionFromM3u8`, `filterAdsFromM3U8Default`, `resolveM3u8Links`)的构建错误
- 修复直链直连模式下 `fetchCurrentSourceVideoInfo` 使用 HLS.js (XHR) 探测视频分辨率
  触发 CORS 误报的问题,改为直接跳过探测
- 移除 `proxy/vod/segment` 中未使用的 `NextRequest` 导入

- [新增] `src/lib/server/proxy-headers.ts`: 抽取 CORS 响应头为共享工具函数,
  消除 `proxy/vod/segment`、`proxy/vod/key`、`proxy/vod/m3u8` 中重复代码
- 统一使用 `DIRECT_PLAY_SOURCE` 常量替代硬编码 `'directplay'` 字符串

- `src/lib/server/ssrf.ts`
- `src/lib/server/proxy-headers.ts`

- `/app/api/proxy-m3u8/route`
- `/app/api/proxy/vod/key/route`
- `/app/api/proxy/vod/m3u8/route`
- `/app/api/proxy/vod/segment/route`
- `/app/api/video-proxy/route`
- `/app/play/page`x
- `/lib/utils`
2026-03-11 21:11:24 +08:00
Troray 11dd787e73 feat(play): 直链播放默认不走代理及无后缀流透传兼容
1. 将直链播放(directplay)模式默认改为浏览器直连播放。
2. 播放失败UI新增'使用代理播放'按钮,点击后自动记忆域名并使用代理重试。
3. 仅在 localStorage 中记录的失败域名会自动走代理。
2026-03-11 17:11:44 +08:00
Troray 559117076c 修改为仅m3u8/m3u等使用代理播放,mp4/flv/mkv等常规视频文件直接播放 2026-03-11 10:08:30 +08:00
Troray 802bf80bef 修复SSRF/Host Header注入与Null报错的问题 2026-03-10 20:58:56 +08:00
Troray b4320b7028 修复直链播放时,测速组件预加载CORS报错的问题 2026-03-10 17:50:11 +08:00
Troray 3563d80510 fix(player):修复直链播放m3u8时跨域错误及分片加载失败的问题 2026-03-10 17:28:48 +08:00
mtvpls a2ac524778 修正emby代理验证key为undefined的问题 2026-03-04 21:31:55 +08:00
mtvpls 4da312e8c7 电视直播放行mp4 2026-03-03 12:08:38 +08:00
mtvpls 4f87e99f52 emby增加自定义ua和图片代理 2026-03-03 11:23:25 +08:00
mtvpls fe1f79b273 定时任务可控制是否完成再返回 2026-03-01 16:07:22 +08:00
mtvpls fffced713c 播放页面的弹窗在大屏下使用抽屉式 2026-02-28 02:15:36 +08:00
mtvpls 6bd618e76c 源名字中显示分辨率,换源增加全部重试 2026-02-27 17:47:55 +08:00
mtvpls b3a460e300 下载内容管理 2026-02-26 22:47:39 +08:00
mtvpls 17376ff0cd 本地播放 2026-02-26 20:55:40 +08:00
mtvpls 0beffc2fbd detailpanel选集自动跟随 2026-02-26 12:24:02 +08:00
mtvpls 34698e943c file system api下载 2026-02-26 11:36:39 +08:00
mtvpls 0402828c4c tvbox支持根据用户细分 2026-02-25 11:56:27 +08:00
mtvpls 2670e80446 fix typeerror 2026-02-24 21:48:30 +08:00
mtvpls 21175170a1 空数据不缓存 2026-02-24 21:16:03 +08:00
mtvpls ac68bca649 数据迁移并发提升性能 2026-02-24 21:03:18 +08:00
mtvpls 7124246538 定时任务冷却 2026-02-23 21:36:19 +08:00
mtvpls 4dfea503d5 定时任务性能优化 2026-02-22 23:55:34 +08:00
mtvpls b93aaa58e2 增加两个预制图标 2026-02-21 16:21:55 +08:00
mtvpls f02dce869c 进度条图标自定义 2026-02-21 02:13:50 +08:00
mtvpls 5d2f944346 tvbox增加jar包 2026-02-20 13:31:39 +08:00
mtvpls 71205d98d8 修复更新通知跳转播放页缺少title参数 2026-02-20 11:45:46 +08:00
mtvpls 84fec2eada 剧集更新提示 2026-02-19 22:03:05 +08:00
mtvpls 96b08dc0bd 私人影库增加追番订阅功能 2026-02-18 17:20:37 +08:00
mtvpls e4a76b3f9d AI问片关闭弹窗不中断 2026-02-17 13:17:22 +08:00
mtvpls f5d549a617 修复play页面详情无法使用douban 2026-02-17 10:29:48 +08:00
mtvpls bdb43450a6 详情面板增加演员 2026-02-17 01:22:15 +08:00
mtvpls 29a14bf8fa 播放页面显示详情按钮 2026-02-17 01:07:44 +08:00
mtvpls 54dd196af4 详情面板支持切换数据源 2026-02-17 00:46:12 +08:00
mtvpls a46906c157 修复移动端无法调节音乐模块音量 2026-02-13 20:47:05 +08:00
mtvpls fc7c5e48c5 移除不允许删除最后一个 2026-02-13 20:11:50 +08:00
mtvpls 04bb7a1ada 更鉴权的m3u8代理 2026-02-13 20:08:58 +08:00
mtvpls 2c7e461002 精确搜索 2026-02-13 19:49:47 +08:00
mtvpls 41f241095e 求片按钮位置调整 2026-02-13 17:30:13 +08:00
mtvpls f0cedc1651 修复openlist目录包含文件时扫描失败 2026-02-11 16:44:43 +08:00
mtvpls 84c5d7a9f0 修复postgrep的用户导出 2026-02-11 00:51:06 +08:00
mtvpls 22b9242e39 修复postgres导入 2026-02-10 20:10:17 +08:00
mtvpls e0606d0b8b 修复OpenList缓存未启用时仍走代理的问题
在replaceAudioUrlsWithOpenList函数中添加OpenListCacheEnabled检查,
确保只有在启用OpenList缓存时才会执行代理逻辑。
2026-02-09 02:16:09 +08:00
mtvpls 5e2c1c9e6a Merge branch 'dev' of https://github.com/mtvpls/moontvplus-dev into dev 2026-02-07 20:32:42 +08:00
mtvpls 5c5f9847cb 修复safari视频同时播放 2026-02-07 20:31:41 +08:00
mtvpls 575b696c10 自动识别更多oidc图标 2026-02-07 11:55:11 +08:00
mtvpls 0eebbf6cb9 登录页面处理error参数 2026-02-07 11:50:03 +08:00
mtvpls 2d5aa76f5d oidc登录图标自动识别linuxdo 2026-02-07 11:46:52 +08:00
mtvpls dbc581a9f7 修改webgpu缓冲区大小 2026-02-07 00:49:38 +08:00
mtvpls f43bdaa9e3 openlist根路径主动移除bom 2026-02-06 21:28:57 +08:00
mtvpls 161243b0a7 识别oriontv 2026-02-05 15:48:10 +08:00