是否可以在客户端javascript中设置Request.UrlReferrer?如果是这样,怎么样?

时间:2011-07-26 17:35:04

标签: javascript .net asp.net

我的应用程序广泛依赖于Request.UrlReferrer来处理链接点击并维护用户在应用程序中的位置的页面历史记录。

要求已更改,我现在需要使用<input type="button" />代替<a href="mypage.aspx"/>

在某个位置导航

目前我正在尝试

<input type="button" 
onclick='ShowLoadingScreen();document.write("<a id=\"link\" style=\"display:none;\" href=\"mypage.aspx\">link</a>");document.getElementById("link").click();'>
Do Thing
</input>

但是代码并不像我想的那样干净,写入文档会打开我的加载屏幕。如果我在页面上设置innerHTML,我的点击就会停止工作。

来自Microsoft Documentation

  

客户可以伪造或选择不提供Referer标头。   因此,虽然UrlReferrer属性可用于   确定网络流量的基本趋势;你不应该把它当作一部分   控制数据访问的授权方案。

所以有可能伪造它,这对我的目的来说非常有效。但是我不知道如何实现这一点。

有没有办法使用javascript伪造UrlReferrer,以便我可以将代码保持在最低限度? 像

这样的东西
<input type="button" 
onclick='ShowLoadingScreen(); SetUrlReferrer(); window.location="mypage.aspx";'>
Do Thing
</input>

不幸的是,这不起作用。

document.referrer = 'myref.aspx';

Error: Object doesn't support this action

1 个答案:

答案 0 :(得分:1)

对不起,但我认为它不会起作用。这只有在您手动构建http请求时才有可能(即使使用ajax,您也会在大多数浏览器上遇到问题)