JSONP相关知识学习
对全网上一些JSONP蜜罐探索与识别 - ph4nt0mer - 博客园 (cnblogs.com)
什么是jsonp
JSONP(JSON with Padding)是JSON的一种”使用模式“,可用于解决主流浏览器的跨域数据访问的问题。
原理
实现原理
- 由于浏览器同源策略限制,网页无法通过Ajax请求非同源的接口数据。
- script标签不受浏览器同源策略的影响,可以通过src属性,请求非同源的js脚本数据。
- 通过函数调用的形式,接收跨域接口响应回来的数据。
攻击原理
Abuse of JSONP
If you find a JSONP interface you could be able to call an arbitrary function with arbitrary data:
1 | <script src='/editor/sharing.js'>: ← Legitimate script |
Or you can even try to execute some javascript:
1 | <script src='/search?q=a&call=alert(1)'></script> |
防御方法
限制来源referer
按照JSON格式标准输出(设置Content-Type : application/json; charset=utf-8),预防http://127.0.0.1/getUsers.php?callback=形式的xss