VS2013,MVC5
我正在阅读另一篇SO帖子以解决记录更新问题(由于帖子我确实解决了它)。但在研究这篇文章的许多答案和评论时,我发现了一个让我暂停的答案。 link。
该评论由Serj发表,他评论说将UserID作为隐藏项目放在编辑表单中是一个安全漏洞。我理解他的帖子,我们不想揭露任何我们不需要的东西。
但它让我想起了我正在使用的特定编辑视图。我正在为我的MVC5站点创建角色管理,并且我通过编辑页面传递了我的角色ID。既然Id不是像许多表那样的整数,而是我假设为了安全目的而做的长字符串。但它是记录的主键,我不知道如何避免不通过编辑页面传递该ID。
所以我想我会问我是不是没有清楚地思考这个问题,或者这是一个风险,但我无能为力呢?
如果我不公开该Id,我如何编辑Role表而不传递记录的ID?
答案 0 :(得分:2)
所以我想我会问我是不是通过清楚地思考,或者 这是一种风险,但我无能为力吗?
是的,这是一个风险。仅仅因为id难以猜测并不意味着你是安全的。如果不在服务器上执行必要的验证步骤,则不应泄露此类信息。
如果我不公开该Id,我将如何编辑Role表 没有传递记录的Id?
您应该传递记录ID,这是肯定的,否则您将永远无法编辑任何内容。但是在服务器上,您应该验证当前登录的用户是否具有修改此特定ID的角色所需的权限。