【问题标题】:Securly Passing variable values from one page to another page将变量值从一页安全地传递到另一页
【发布时间】:2011-06-21 04:21:46
【问题描述】:

将变量从一个页面传递到另一个页面时

为了避免用户弄乱 URL 参数值

最好...

1) 通过会话传递变量

2) 将 URL 中的变量与签名一起传递

【问题讨论】:

  • 安全是什么意思?

标签: c# asp.net security url url-parameters


【解决方案1】:

只要您传递签名,您将值传递到哪里都没有关系,因为您将始终检查签名完整性

我要做的是在会话中传递所有内容(包括签名)。只是为了保持 URL 干净。但这取决于您和您的特定用例。

【讨论】:

    【解决方案2】:

    如果使用会话,用户无法控制值的内容。

    另外,如果你启用了view state encryption,你可以使用视图状态。视图状态的优点是它被本地化到一个页面。这意味着当用户打开您网站的两个选项卡时,变量将本地化到特定选项卡。

    请参阅http://www.codeproject.com/KB/viewstate/AccessViewState.aspx,了解如何从另一个页面访问视图状态。

    【讨论】:

    【解决方案3】:

    取决于您的用例。会话在大多数情况下更安全。如果有人可以破坏您的服务器以获取您的会话数据,那么您需要担心不同的事情。但是,如果您将会话数据存储在其他人可以看到的地方,那就太糟糕了;-)。

    理论上,URL 签名可能是暴力破解的。由于参数可能很短并且它们有时可能是可预测的,因此可能会给知道加密的人一些攻击点。不过,这并非微不足道。但是,如果安全是您的首选,那么我不会允许这些数据离开您的服务器。

    【讨论】:

      【解决方案4】:

      如果您真的担心用户会发疯并剥离参数,那么您可以使用 Session 状态,但是您可能会丢失历史记录,即 Back Forward 按钮。

      第二个选项看起来不错,但如果用户正在剥离东西,您甚至无法确定参数是否存在。

      所以两者的混合看起来不错。

      【讨论】:

        猜你喜欢
        • 2023-03-30
        • 2011-10-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-07-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多