我们一直在使用asp.net mvc进行开发。有时候,我们需要将一些隐藏的字段放在模型绑定器所推送的表单上(如预期的那样)。现在,用户可以轻松地使用萤火虫或其他工具锻炼表格。隐藏字段的目的主要是为了在服务器上提供一些信息,而不是要改变它们。例如,在我的编辑员工表单中,我可以将EmployeeID置于隐藏字段中,但如果用户更改隐藏字段中的employeeID,则会在数据库中更新错误的员工。在这种情况下,我们如何保持隐藏字段的完整性
视为隐藏字段的完整性:Asp.NET mvc
回答
您需要强制执行安全措施以确保进行修改的人员有权这样做。我也会把id放在URL中,而不是隐藏字段,依靠安全来确保人们不会修改他们不应该做的事情。如果他们在手动更改ID时有权修改该项目,则不会有问题。重要的是要确保一个人不能手动更改ID并获得他们不应该访问的东西。强制服务器端权限解决了这个问题。您可以使用Roles与AuthorizeAttribute一起轻松完成此操作。
是的检查是为了确保每个人都访问或修改属于他的记录,但我仍然不希望用户手动更改ID并损坏其中的一个记录。 – 2011-03-21 04:50:30
如果用户更改 隐藏字段的雇员,员工错将 数据库
这是在您的网站主要安全漏洞更新。在你使用网页开发所做的一切事情中,无论用户的代码多么聪明,或者你认为只要用户不做任何事情就可以确定,请记住一条黄金法则:绝不隐式信任从客户端接收的数据。
为了修改您网站上的任何内容,用户必须已登录。(右?)因此,如果用户尝试向网站发布表单(特别是可以修改数据的表单)请检查提交表单的用户是否有权限对正在指定的数据执行请求的操作。
理想情况下,每个不完全公开且不安全的操作应该具有服务器端权限检查。永远不要相信客户发给你的东西。
一种可能的选择是将该静态一次性信息存储在服务器上的TempData中,而不是将其传递给可能被篡改的客户端。请记住,默认情况下,TempData使用会话并具有自己的限制 - 但它可能是一个选项。
- 1. asp.net mvc jquery隐藏字段
- 2. ASP.NET MVC隐藏字段不POSTING
- 3. ASP.NET MVC:使会话完全无cookie(隐藏表单字段)
- 4. 隐藏字段asp.net
- 5. 春季隐藏字段MVC
- 6. 隐藏字段持久性
- 7. ASP.NET MVC:隐藏的表单字段不交
- 8. 隐藏的字段不在窗体集合中发送asp.net MVC
- 9. 获取控制器中隐藏字段的值(ASP.NET MVC)
- 10. ASP.NET MVC 4:更改隐藏字段的值在Javascript
- 11. ASP.Net MVC表单回传中的隐藏字段
- 12. ASP.NET隐藏标签字段的空值
- 13. ASP.NET - 参数的隐藏字段
- 14. ASP.NET MVC - 确保数据完整性
- 15. 无法隐藏ASP.NET中的VIEWSTATE隐藏字段
- 16. JQuery自动完成隐藏字段
- 17. 在ASP.NET MVC中比隐藏表单字段更安全吗?
- 18. 在Asp.net Mvc隐藏字段值不能访问
- 19. ASP.NET MVC将模型渲染为隐藏字段
- 20. 隐藏字段
- 21. 隐藏字段
- 22. 隐藏和显示字段仍使用ASP.NET MVC 2验证隐藏字段客户端验证
- 23. Asp.net MVC可见/隐藏
- 24. 在asp.net中隐藏url MVC
- 25. ASP.NET mvc隐藏webgrid列
- 26. ASP.NET MVC - partialview - 代码隐藏?
- 27. ASP.NET MVC3:模型隐藏字段结合
- 28. 输入字段值与隐藏可见性隐藏不发布
- 29. django modelform属性隐藏字段
- 30. 数据注解隐藏属性/字段
在更新模型之前,始终可以进行服务器端验证。确保登录用户有权更新指定的员工。 – Sapph 2011-03-20 19:15:53