来自FRAMESET链接的HTTP_REFERER在不同的计算机上发送不同的值?

时间:2012-05-23 19:03:54

标签: html http-headers frames

我有一个<frameset>,其中包含两个<frame>标签:导航框架(A)和内容框架(B)

-------------------------
|     |                 |
|     |                 |
|     |                 |
|  A  |        B        |
|     |                 |
|     |                 |
|     |                 |
-------------------------
  <FRAMESET rows="*" cols="130,*" border=0>
    <FRAME scrolling="no" name="navFrame" FrameBorder=0 src="navFrame.aspx">
    <FRAME src="" name="mainFrame"></FRAME>
  </FRAMESET>

该页面称为main.aspx,而A面称为navFrame.aspx。当我单击导航框架中的链接时,它会在框架B中加载内容。

B的其中一个内容页面使用Request.ServerVariables("HTTP_REFERER"),但某些计算机上的值为navFrame.aspx,而其他计算机上的值为main.aspx

两台计算机都使用嵌入式网络浏览器,这是另一种软件产品的一部分(javascript告诉我它的IE7),所以我不认为它是浏览器版本的问题。

我不确定它是否重要,但内容页面是位于另一个域的https页面,它使用外部URL来访问它。

什么决定了HTTP_REFERER在框架窗口中的含义?

1 个答案:

答案 0 :(得分:0)

首先:* HTTP_REFERER *不可靠。

该值取决于客户端(webbrowser)发送到服务器的 referer 标头。由于技术问题既可以操纵也可以混合,因此不可信任。例如,使用 referer 保护表单不起作用,因为垃圾邮件发送者可以操纵GET和POST值,伪造他们喜欢的任何引用者。

我的最佳提示是:某些浏览器提供了禁用发送* HTTP_REFERER *的选项,您可能需要再次查看Web浏览客户端的配置(和/或您的应用程序嵌入的浏览客户端< / em>的)。