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

我的问题是,无论何时我尝试通过以下两种方法之一访问引荐来源:

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


它返回我为空。

有什么想法可以吸引我的推荐人吗?

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

最佳答案

如果我正确理解了这个问题,那么您有通过将iframe嵌入其网页来指向您的网站的客户端网站。您希望“确保”请求来自宿主页面,该宿主页面本身是一组指定站点的一部分。一组指定站点由一组IP地址描述。可以解决吗?

整rick首先,假设您有推荐人。您将需要从中获取主机名(使用Uri类型很容易)。然后,您需要使用DNS解析主机名的IP地址(同样,.NET框架也不太困难)。

当然,您需要获得推荐人,这是最棘手的事情。浏览器并不总是在请求中放置引用标头。当裁判地址与该裁判不在同一个域中时,尤其如此。亲爱的,这是一个突破。

解决此问题(且不容易欺骗)的更好方法是使用一些基于哈希的身份验证。不必太复杂(如果原始需求觉得引荐测试仍然足够)。

10-07 15:05