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