【问题标题】:Smart way to disallow users going to a site page directly禁止用户直接访问网站页面的智能方法
【发布时间】:2009-06-13 03:42:39
【问题描述】:

一个站点有 100 个页面,遵循某个站点地图。用户可以从 page1.aspx 导航到 page2.aspx。但是如果用户直接通过一个标有书籍的URL去page2.aspx,用户应该被重定向到page1.aspx。

编辑:我不想进入并为需要满足此需求的每个页面添加代码。

注意:这不是跨页面回发场景。

【问题讨论】:

  • 您是在会话中强制执行此操作(例如,用户有一个有效会话;他可以做任何他想做的事)还是您专门试图强制访问给定路径的特定路径?跨度>
  • 选项 2..."您专门试图强制访问给定路径的特定路径"

标签: asp.net webforms


【解决方案1】:

您可能会考虑基于 WorkFlow 的东西,例如:http://blogs.msdn.com/mwinkle/archive/2007/06/07/introducing-the-pageflow-sample.aspx

WCSF 团队还提供了一个 pageflow application block,您可以将其用作应用程序的独立插件。

【讨论】:

    【解决方案2】:

    我想你可以检查一下referrer,如果没有/或者不是page1.aspx,那么你可以重定向回page1.aspx。

    【讨论】:

      【解决方案3】:

      正如另一个回答者提到的,您可以使用 Referrer 标头,但这可能会被客户端伪造。

      由于您不想修改每个页面,您可以使用IHttpModule 做一些事情。假设您有某种描述有效页面导航的方式,您可以在 BeginRequest 处理程序中执行以下操作:

      • 检查会话以获取有效页面列表(如果会话中没有任何页面,则使用默认列表进行首次访问)。
      • 如果此请求是针对无效页面的,请重定向到用户应该在的位置。
      • 根据此请求,在会话中设置有效页面列表和重定向页面,以便为下一个请求做好准备。

      【讨论】:

        【解决方案4】:

        我最近使用了真实代码来检查引用者是否为空白,并将其用作授权步骤。这个想法是用户将无法伪造引荐来源网址,您不需要自定义浏览器来伪造引荐来源网址。用户可以将您的页面标记为delicious,然后delicious.com 是引荐来源(而不是空白)。

        对于用户需要多么复杂才能进行某些黑客攻击,我有过真正的争论——即,如果用户不知道如何设置引荐来源网址,那么您可以信任它。虽然确实如此,但您的用户不太可能编写自定义浏览器,但已经有 Firefox 插件来设置标题、引荐来源等,而且它们很容易使用。

        Josh 给出了最好的答案——在 page2 上,您应该检查页面点击日志,看看用户最近是否访问过 page1

        【讨论】:

        • 啊,“我们应该计划用户的聪明程度”的论点。我真正喜欢的是当这个论点被用来证明不做安全事情的时候——比如说防止 SQL 注入....
        • 我想问题作者需要说明正在调查的原因。如果它只是为了应用程序中的一般“流动”,那么阻力最小的路径就可以了。否则,上面的一些更好的方法是有意义的。
        【解决方案5】:

        我喜欢上面的很多答案(特别是工作流程)。

        另一种选择是将每个页面创建为用户控件并让 page1.aspx 控制加载的用户控件。这样做的好处是将您的工作流程存储在一个地方而不是每个页面上。

        但是,我不认为那里有灵丹妙药。听起来这个安全问题是事后才想到的,或者可能被报告为错误,而您的任务是快速有效地修复它。

        我会在这里开始权衡答案及其相关成本(以小时为单位)。我怀疑最快的解决方案是检查每个页面上的引荐来源地址。虽然可以破解,但它是模糊的,如果您可以接受这种风险,它可能是合适的解决方案。

        【讨论】:

          猜你喜欢
          • 2019-01-31
          • 1970-01-01
          • 2012-05-18
          • 2017-12-25
          • 1970-01-01
          • 1970-01-01
          • 2017-09-02
          • 2010-11-05
          • 2010-09-16
          相关资源
          最近更新 更多