我们的一个应用程序将在iframe中运行,在salesforce中,我在访问引用者时遇到了麻烦。他们希望我们做一些引用检查,以确保请求来自salesforce,并且我们已经获得了要检查的IP地址。
我的问题是,无论何时我尝试通过以下两种方法之一访问引用者:
HttpContext.Current.Request.ServerVariables["HTTP_REFERER"]
HttpContext.Current.Request.UrlReferrer
它返回null。
任何想法我怎么能抓住引用者?
PS:我知道你可以欺骗引用者,但这是要求的一部分。答案 0 :(得分:1)
只有在通过链接请求页面时才会使用引荐来源。打开页面时,直接在地址栏中输入地址(或者在设置IFRAME的src。的情况下),引用者将为空。
答案 1 :(得分:1)
如果我正确理解了这个问题,那么您的客户网站可以通过在您的网页中嵌入IFrame来指向您的网站。您希望“确保”请求来自主页,而主页本身是指定网站集的一部分。指定站点集由一组IP地址描述。这涵盖了吗?
棘手。首先让我们假设你有一个引用者。您需要从中获取主机名(使用Uri
类型很容易)。然后,您需要使用DNS解析主机名的IP地址(再次使用.NET框架并不太困难)。
当然你需要得到一个推荐人,这是最棘手的一点。浏览器并不总是在请求中放置引用标头。当裁判地址与引用者不在同一个域中时尤其如此,这就是这里的情况。 IOW,这是 showstopper 。
解决此问题(并且不易受欺骗)的更好方法是使用一些基于散列的身份验证。不必太复杂(如果最初的要求感觉参考测试足够了)。