很多处理CSRF的方案都是对referer做检查,但是对于空referer很多情况是不做拦截的,比如提供给app的接口就不会拦截空referer请求。
绕过这种防御的办法有两种:
1.<iframe src="data:text/html,<script>function json(o){alert(o.nick);}</script><script src=http://newdata.qq.com/newLoginFull.q?callback=json></script>">
2.https-->http
以上两种请求方式都不会带referer,这样就能实现jsonhijacking等攻击了。
防御这两种攻击的方法:
1.加token,但通常已上线多个版本的app是没法新加token来规避的
2.校验referer为空的同时,再校验下UA或约定的header头信息