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

为避免用户弄乱URL参数“值”

最好是...

1)通过会话传递变量

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

有帮助吗?

解决方案

只要您传递签名,就不要在哪里传递值,因为您将始终检查签名的完整性

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

其他提示

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

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

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

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

从理论上讲,URL签名可以强制执行。由于参数可能很短,而且有时可能是可预测的,因此它可能会使知道加密的人受到攻击。不过,这并非微不足道。但是,如果安全性是您的首要选择,那么我将不允许这些数据离开您的服务器。

如果您真的担心用户会发疯并删除参数,则可以使用会话状态,但是您可能会丢失历史记录,即后退前进按钮。

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

所以两者结合看起来不错。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top