3

我们的一个应用程序将在销售人员内部的 iframe 中运行,我在访问引用者时遇到了麻烦。他们希望我们做一些推荐人检查,以确保请求来自销售人员,并且我们已经获得了要检查的 IP 地址。

我的问题是,每当我尝试通过以下两种方法之一访问引用者时:

HttpContext.Current.Request.ServerVariables["HTTP_REFERER"]
HttpContext.Current.Request.UrlReferrer

它返回我为空。

任何想法我怎么能得到推荐人?

PS:我知道您可以欺骗引用者,但这是要求的一部分。

4

2 回答 2

1

仅当通过链接请求页面时,才会出现引荐来源网址。当从浏览器的地址栏中直接输入地址(或者在您的情况下设置 IFRAME 的 src.)从浏览器的地址栏中打开页面时,引荐来源网址将为空。

于 2009-09-28T09:29:50.780 回答
1

如果我正确理解了这个问题,您的客户网站通过在其网页中嵌入 IFrame 来引用您的网站,则指向您的网站。您希望“确保”请求来自主机页面,该主机页面本身就是一组指定站点的一部分。这组指定站点由一组 IP 地址描述。这覆盖它吗?

棘手。首先让我们假设你有一个推荐人。您将需要从中获取主机名(使用该Uri类型很容易)。然后,您需要使用 DNS 解析主机名的 IP 地址(同样,使用 .NET 框架并不太难)。

当然,您需要获得推荐人,这是最棘手的一点。浏览器并不总是在请求中放置引用标头。当referee地址与referer不在同一个域时尤其如此,这里就是这种情况。IOW,这是一个炫耀

解决这个问题的更好方法(并且不容易被欺骗)是使用一些基于哈希的身份验证。不必太复杂(如果最初的要求觉得推荐人测试就足够了)。

于 2009-09-28T09:30:11.907 回答