2

我有一个<frameset>包含两个<frame>标签:导航框架(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框架窗口中的内容?

4

1 回答 1

0

首先:*HTTP_REFERER* 不可靠。

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

我最好的建议是:某些浏览器提供禁用发送 *HTTP_REFERER* 的选项,您可能想再看看您的 Web 浏览客户端(和/或您的应用程序嵌入的浏览客户端)的配置。

于 2012-07-31T15:01:44.773 回答