安全地将隐藏数据从视图传递到控制器

时间:2012-08-19 17:35:30

标签: asp.net-mvc model-view-controller viewbag

在我的应用程序中,用户可以在它们之间传输点。在我看来,我检查用户是否可以从他的账户转移积分,如果可以的话,我会提供允许他这样做的东西。我不想再在我的控制器中检查一下,所以我需要一些机制,这将允许我检查我为其呈现视图页面的用户是否与向控制器发送请求的用户相同。

所以基本上,我想检查我的控制器,如果当前登录的用户与发送请求的用户相同 - 并且为此,我认为我需要的东西与ViewBag类似,但不是来自控制器到视图,但从视图到控制器。这可能吗?

1 个答案:

答案 0 :(得分:2)

执行此操作的正确方法不是在用户请求之间传输此类信息。每个请求都应该是无状态,但是你试图嵌入一个状态。这是一种用脚射击自己的公平方式。

如果您的操作需要身份验证(您就是您所说的那个人),则应使用标准的经典ASP网络方式进行身份验证。这将为任何进一步的用户请求嵌入标准身份验证令牌。这样您就会知道用户是否经过身份验证。

对于某些需要授权的操作(用户具有执行操作的权限),您必须验证用户是否有权执行此类操作。必须为每个请求执行此操作,并且通常是快速操作。无需通过降低安全性来优化此处。

如果您使用经典asp搜索身份验证和授权,您将获得有关如何编码位的更细粒度的答案。


我不推荐,但您仍然可以使用

嵌入隐藏信息
<input type="hidden" value="..."/>