JavaScript-跳转如何绕过referer验证,兼容主流浏览器?
在A.domain下,跳转到B.domain下,B域加了referer验证,如果不在其白名单中就响应404,或403之类的,如果不发送referer,也没有问题。
那么在A下如何正常的跳转到B域?
现在主要是想用一种不发送referer的跳转实现,但是我能想到的,都不能很好的支持各个浏览器,所以在这里请大家一起想想办法。
贴一张图,供大家参考,各个浏览器在哪种跳转下可以发送referer:
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
个人认为 SOCKET 方式比较靠谱
把所有的 B.domain 链接 统一指向一个跳转接口,比如 redirect.php 用程序来处理跳转。
自己构建HTTP数据包即可,使用SOCKET。如果你是php程序员,用file_get_content,curl均可
之前我使用js:
window.location=xxx;
的方式使客户端浏览器丢掉referer
我觉得你已经把答案贴出来了,可能没有其他更好的方式了
目前浏览器基本都会屏蔽客户端二次跳转为屏蔽恶意广告,所以那些可爱的奇技淫巧基本都歇菜了
BTW:怎么这里的回答都驴唇不对马嘴的?
如果只是在页面点击跳转的话,在chrome下面用noreferrer就可以了。
但是firefox暂时还不支持这个属性,在firefox下面点击跳转不待referrer暂时没有好办法,但是拖拽的话就不需要写这个属性,拖拽链接打开不会带referrer值。