将变量从一个页面传递到另一个页面时
避免用户弄乱URL参数值
最好是......
1)通过会话传递变量
2)传递URL中的变量以及签名
答案 0 :(得分:4)
只要您传递签名,您传递值的位置就没关系,因为您将始终检查签名的完整性
我要做的是在会话中传递所有内容(包括签名)。只是为了保持URL清洁。但这取决于您和您的特定用例。
答案 1 :(得分:1)
如果您使用会话,则用户无法控制值的内容。
此外,如果您启用了view state encryption,则可以使用视图状态。视图状态的优点是它本地化为单个页面。这意味着当用户打开网站的两个选项卡时,变量将本地化为特定选项卡。
有关如何从其他页面访问视图状态,请参阅http://www.codeproject.com/KB/viewstate/AccessViewState.aspx。
答案 2 :(得分:0)
如果你真的担心用户疯狂并剥离params,那么你可以使用Session状态,但是你可能会丢失历史记录,例如Back Forward按钮。
第二个选项看起来不错,但如果用户正在剥离东西,则无法确定该参数是否存在。
所以两者的组合看起来都不错。
答案 3 :(得分:0)
取决于您的使用案例。在大多数情况下,会话IS更安全。如果有人可能会损害您的服务器以获取会话数据,那么您可能需要担心不同的事情。如果你将会话数据存储在其他人可以看到的地方,那就太糟糕了; - )。
理论上,URL签名可能是暴力强制的。由于参数可能很短并且有时可能是可预测的,因此可能会让知道加密的人有一些攻击点。但这不是微不足道的。但是,如果安全性是您的首选,那么我不允许这些数据离开您的服务器。