---
title: JSONP禁用与跨域数据防护最佳实践
keywords:
- JSONP
- callback
- CORS
- application/json
- nosniff
description: 通过禁用JSONP与callback参数、统一使用安全的CORS与JSON响应头,阻断跨域数据泄露与脚本注入风险。
categories:
- 文章资讯
- 编程技术
---
背景与价值
JSONP易被利用进行跨域数据窃取。禁用JSONP并使用标准CORS可提升安全性与可控性。
统一规范
- 禁用callback:拒绝
callback/jsonp参数。 - 统一类型:仅返回
application/json与nosniff。 - 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。

发表评论 取消回复