通过编辑视图传递MVC角色ID是否存在安全漏洞?

时间:2015-02-27 21:19:33

标签: asp.net-mvc security

VS2013,MVC5

我正在阅读另一篇SO帖子以解决记录更新问题(由于帖子我确实解决了它)。但在研究这篇文章的许多答案和评论时,我发现了一个让我暂停的答案。 link

该评论由Serj发表,他评论说将UserID作为隐藏项目放在编辑表单中是一个安全漏洞。我理解他的帖子,我们不想揭露任何我们不需要的东西。

但它让我想起了我正在使用的特定编辑视图。我正在为我的MVC5站点创建角色管理,并且我通过编辑页面传递了我的角色ID。既然Id不是像许多表那样的整数,而是我假设为了安全目的而做的长字符串。但它是记录的主键,我不知道如何避免不通过编辑页面传递该ID。

所以我想我会问我是不是没有清楚地思考这个问题,或者这是一个风险,但我无能为力呢?

如果我不公开该Id,我如何编辑Role表而不传递记录的ID?

1 个答案:

答案 0 :(得分:2)

  

所以我想我会问我是不是通过清楚地思考,或者   这是一种风险,但我无能为力吗?

是的,这是一个风险。仅仅因为id难以猜测并不意味着你是安全的。如果不在服务器上执行必要的验证步骤,则不应泄露此类信息。

  

如果我不公开该Id,我将如何编辑Role表   没有传递记录的Id?

您应该传递记录ID,这是肯定的,否则您将永远无法编辑任何内容。但是在服务器上,您应该验证当前登录的用户是否具有修改此特定ID的角色所需的权限。