如何知道Web请求是否来自特定的另一个已知网站的链接按钮

时间:2012-05-02 13:18:01

标签: c# javascript asp.net iis web

我有两个网站

1)主要网站:它有一个链接帮助&将用户重定向到另一个帮助网站的培训。

2)帮助网站没有认证规则,因此任何人都可以直接访问该网站。

现在我要求允许从第一个网站的链接访问第二个网站,所有其他请求应该重定向到另一个页面。

不接受offcourse查询字符串/参数验证,因为它可以是可见的和常量的

是否有可能,任何建议都表示赞赏。

5 个答案:

答案 0 :(得分:3)

您可以使用http://msdn.microsoft.com/en-us/library/system.web.httprequest.urlreferrer.aspx,这只是HTTP引用标头的ASP.NET包装器。 http://en.wikipedia.org/wiki/HTTP_referrer

当然,这可能是欺骗性的,所以不要依赖它来创造超级安全的东西。

答案 1 :(得分:2)

如果您将get参数添加到第一个站点中的链接url并在第二个站点中检查它,该怎么办?这当然是一个非常简单的解决方案,可以很快被骗。

答案 2 :(得分:0)

来自here

您可以使用请求的UrlReferrer属性:

Request.UrlReferrer

这将从请求中读取Referer HTTP标头,该标头可能由客户端(用户代理)提供,也可能不提供。

答案 3 :(得分:0)

您好,您可以使用此代码块来识别用户访问您网站的位置

 If Not IsPostBack Then
            If Not Request.UrlReferrer.ToString() Is Nothing Then
                referrer = Request.UrlReferrer.ToString()
            End If
        End If

答案 4 :(得分:0)

如果你想要普通用户不容易欺骗的东西......

site2公开了一个验证“秘密”参数的web服务(可能只是一个只有site1和site2知道的长随机字符串)。此服务返回一个唯一的“令牌”,仅在一小段时间内有效。在将用户定向到site2时,site1会将此标记附加到查询字符串。 site2验证令牌是否合法且仍然有效。一旦使用了令牌,site2就不再将其视为有效。