我有一个<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
在框架窗口中的含义?
答案 0 :(得分:0)
首先:* HTTP_REFERER *不可靠。
该值取决于客户端(webbrowser)发送到服务器的 referer 标头。由于技术问题既可以操纵也可以混合,因此不可信任。例如,使用 referer 保护表单不起作用,因为垃圾邮件发送者可以操纵GET和POST值,伪造他们喜欢的任何引用者。
我的最佳提示是:某些浏览器提供了禁用发送* HTTP_REFERER *的选项,您可能需要再次查看Web浏览客户端的配置(和/或您的应用程序嵌入的浏览客户端< / em>的)。