JSONP使用以及需要注意的安全问题

JSONP 全称是 JSON with Padding,JSONP可能会引起CSRF(Cross-site request forgery 跨站请求伪造)攻击或XSS (Cross Site Scripting 跨站脚本攻击)漏洞
对于支持JSONP的接口,写接口时数据可能会被篡改,读接口时数据可能会被劫持

CSRF:
这个问题属于CSRF攻击范畴,一个典型的 JSON Hijacking 攻击代码:
<script>
function wooyun(v){
    alert(v.username);
}
</script>
<script src="http://js.login.360.cn/?o=sso&m=info&func=wooyun"></script>

当被攻击者在登陆 360 网站的情况下访问了该网页时,那么用户的隐私数据(如用户名,邮箱等)可能被攻击者劫持。



XSS:
输出 JSON 时,没有严格定义好 Content-Type(Content-Type: application/json)直接导致了一个典型的 XSS 漏洞
http://127.0.0.1/getUsers.php?callback=<script>alert(/xss/)</script>
主要解决方案:
a.Referer 严谨过滤
b.严格定义输出的 Content-Type: application/json,浏览器不解析恶意插入的 XSS 代码(直接访问提示文件下载)
c.部署一次性 Token
d.限制callback函数名长度,严格过滤callback函数名
e.过滤JSON里数据的输出


参考文档:
JSONP的详细使用说明:
https://www.cnblogs.com/chiangchou/p/jsonp.html
JSONP的安全使用说明:
https://www.cnblogs.com/52php/p/5677775.html
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值