需求是这样的,用户访问a.com时将其重定向到b.com,同时不能让b.com通过referer检测到用户是从a.com过来的。
请问大神这样的功能能否实现?
需求是这样的,用户访问a.com时将其重定向到b.com,同时不能让b.com通过referer检测到用户是从a.com过来的。
请问大神这样的功能能否实现?
后台方案:通过proxy,对b.com做一个透明代理。
前台方案:通过js,或者链接
如果你是在某个网站比如A.com,有个链接点击之后进入b.com,然后要消除refer,把链接改成下面这样子:
<a rel="noreferrer" onclick="noreferclick(this);" href="b.com" target="_blank">xxx</a>
function noreferclick(o){
var b,e,c,g,d,f,h;b=$(o);c=b.attr("href");
e="<html><head><meta http-equiv='Refresh' content='0; URL="+$("<p/>").text(c).html()+"' /></head><body></body></html>";
if($.browser.webkit){
b.attr("rel","noreferrer");
return true;
}
var userAgent = navigator.userAgent.toLowerCase();
if(userAgent.indexOf("firefox")!=-1){
if(b.attr("added")){
return true;
}
else{
h="data:text/html;charset=utf-8,"+encodeURIComponent(e);
b.attr("added",1);
b.attr("href",h);
return true;
}
}
else{
var a=b.attr("target")||"_self";
switch(a){
case "_self":
case window.name:
a=window;
break;
default:
a=window.open(null,a);
break;
}
a=a.document;
a.clear();
a.write(e);
a.close();
return false;
}
}
大部分浏览器适用。
如果不是,比如c.com点击链接到a.com,然后转b.com,只有a.com是可控的。参考上面的点击操作做个js跳转。
8 回答3.6k 阅读
2 回答3.1k 阅读✓ 已解决
2 回答1.7k 阅读✓ 已解决
4 回答1.8k 阅读
1 回答1.4k 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
1 回答1k 阅读✓ 已解决
Update:
有看到一些其他的思路,不过都有局限,也没什么保证,可以参考
http://segmentfault.com/q/1010000000123441