--- 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与统一类型 ```ts 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。

发表评论 取消回复