将变量值从一页安全地传递到另一页
-
28-10-2019 - |
题
将变量从一页传递到另一页时
为避免用户弄乱URL参数“值”
最好是...
1)通过会话传递变量
2)将URL中的变量与签名一起传递
解决方案
只要您传递签名,就不要在哪里传递值,因为您将始终检查签名的完整性
我要做的是在会话中传递所有内容(包括签名)。只是为了保持URL干净。但这取决于您和您的特定用例。
其他提示
如果使用会话,则用户无法控制值的内容。
此外,如果您启用了视图状态加密,则可以使用视图状态。视图状态的优点是它被本地化到单个页面。这意味着当用户打开您网站的两个选项卡时,变量将被本地化为特定的选项卡。
请参见 http://www.codeproject.com/KB/viewstate/AccessViewState.aspx了解如何从另一个页面访问视图状态。
取决于您的用例。在大多数情况下,会话IS更安全。如果有人可以破坏您的服务器来获取您的会话数据,那么您就不必担心其他事情。如果将会话数据存储在其他人可以看到它的地方,那将是很糟糕的;-)。
从理论上讲,URL签名可以强制执行。由于参数可能很短,而且有时可能是可预测的,因此它可能会使知道加密的人受到攻击。不过,这并非微不足道。但是,如果安全性是您的首要选择,那么我将不允许这些数据离开您的服务器。
如果您真的担心用户会发疯并删除参数,则可以使用会话状态,但是您可能会丢失历史记录,即后退前进按钮。
第二个选项看起来不错,但是如果用户要剥离东西,则无法确定该参数是否存在。
所以两者结合看起来不错。
不隶属于 StackOverflow