---

title: JSONP禁用与跨域数据防护最佳实践

keywords:

  • JSONP
  • callback
  • CORS
  • application/json
  • nosniff

description: 通过禁用JSONP与callback参数、统一使用安全的CORS与JSON响应头,阻断跨域数据泄露与脚本注入风险。

categories:

  • 文章资讯
  • 编程技术

---

背景与价值

JSONP易被利用进行跨域数据窃取。禁用JSONP并使用标准CORS可提升安全性与可控性。

统一规范

  • 禁用callback:拒绝 callback/jsonp 参数。
  • 统一类型:仅返回 application/jsonnosniff
  • CORS白名单:按受控来源与方法/头治理。

核心实现

禁用JSONP与统一类型

type Req = { url: string }
type Res = { setHeader: (k: string, v: string) => void; status: (n: number) => Res; end: (b?: string) => void }

function hasJsonp(url: string): boolean { return /[?&](callback|jsonp)=/i.test(url) }

function sendJson(res: Res, body: any) {
  res.setHeader('Content-Type', 'application/json; charset=utf-8')
  res.setHeader('X-Content-Type-Options', 'nosniff')
  res.end(JSON.stringify(body))
}

function handle(req: Req, res: Res) {
  if (hasJsonp(req.url)) return res.status(400).end('jsonp_disabled')
  sendJson(res, { ok: true })
}

落地建议

  • 全面禁用JSONP与callback参数,统一采用安全CORS策略与JSON响应。

验证清单

  • 是否拒绝JSONP参数;是否统一返回安全JSON类型与nosniff。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部