【问题标题】:How to know if a web request is made from particular another known website's link button如何知道 Web 请求是否来自特定的另一个已知网站的链接按钮
【发布时间】:2012-05-02 13:18:01
【问题描述】:

我有两个网站

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

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

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

Offcourse 查询字符串/参数验证是不可接受的,因为它可以是可见且恒定的

是否可以,任何建议都值得赞赏。

【问题讨论】:

    标签: c# javascript asp.net iis web


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 我提出了相同的建议,但他们不接受,好像任何人都知道他们仍然可以访问第二个站点的参数。
      【解决方案3】:

      来自here

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

      Request.UrlReferrer
      

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

      【讨论】:

        【解决方案4】:

        您好,您可以使用此代码块来识别用户从何处来到您的网站

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

        【讨论】:

          【解决方案5】:

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

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

          【讨论】:

            猜你喜欢
            • 2016-09-08
            • 2013-05-08
            • 2012-04-15
            • 2015-11-18
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2015-09-22
            • 2013-04-12
            相关资源
            最近更新 更多