jsonp 跨域请求

漏洞简述

当某网站通过 JSONP 的方式来传递用户认证后的敏感信息时,攻击者通过构造恶意的 JSONP 调用页面,诱导被攻击者访问来达到截取用户敏感信息的目的。

测试例子

攻击者可利用该漏洞结合社会工程学,诱导用户点击某个精心构造的页面,从而达到窃取用户敏感信息的目的。例如:

一个典型的 JSON劫持攻击代码:
	<script>
	function test(v){
	    alert(v.username);
	}
	</script>
	<script src="http://www.xxx.com/?o=sso&m=info&func=test"></script>
	当被攻击者在登陆www.xxx.com网站的情况下访问了该网页时,那么用户的隐私数据(如用户名,邮箱等)可能被攻击者劫持。

漏洞修复

1. 严格安全的实现CSRF方式调用JSON文件:限制Referer、部署一次性Token等。
2. 严格安装JSON格式标准输出Content-Type及编码(Content-Type : application/json; charset=utf-8)。
3. 严格过滤callback函数名及JSON里数据的输出。
4. 严格限制对JSONP输出callback函数名的长度。
5. 在callback输出之前加入其他字符(如:/**/、回车换行)这样既不影响JSON文件加载,又能一定程度预防其他文件格式的输出。

Last updated

Was this helpful?