You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Next.js中用JSON文件存储视频链接是否安全?拟部署Vercel

问题解答

核心结论

部署到Vercel后,src文件夹内的文件不会被前端用户直接访问到,你的videos.json是安全的。

原因说明

  • Vercel部署Next.js(从你的API路由格式判断你用的是Next.js)时,只会把构建后的生产产物(比如.next目录)部署到服务器,src属于源码目录,不会被暴露到可访问的公开路径中。
  • 你的API路由运行在服务器端,只有服务器代码能读取src/content/videos.json,前端用户无法通过URL直接请求到这个文件。

安全注意事项

虽然JSON文件不会泄露,但你需要确保权限验证逻辑的严谨性:

  • 务必完善isUserPremim的验证逻辑:比如用JWT令牌校验用户身份,或者集成成熟的身份验证方案,避免用户伪造权限。
  • 视频ID本身的安全性:如果视频平台的ID是公开可播放的(比如YouTube公开视频ID),就算用户拿到ID也能直接播放,这种情况下你需要给视频设置私有权限(比如平台的未公开视频,需要签名或特定权限才能访问),或者使用加密的视频ID,配合服务器端生成带权限的播放链接。

代码优化建议

你可以简化JSON文件的读取方式,不用手动fs.readFile:

// 直接import JSON文件(服务器端可用)
import videos from '../content/videos.json' assert { type: 'json' };

export default async function handler(req,res) {
  const { videoSlug } = req.query;
  const isUserPremim = // 完善你的权限验证逻辑

  if(!isUserPremim) return res.status(403).json("Not allowed!")

  const id = videos[videoSlug];
  return id ? res.status(200).json(id) : res.status(404).json("Video not found");
} 

内容的提问来源于stack exchange,提问作者Daffy Duck

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 18:23:23