【发布时间】:2017-02-01 14:37:19
【问题描述】:
我目前正在使用 asp.net MVC 创建一个应用程序,我需要验证用户是否在预先生成给他的内容中选择了值。
简单流程示例:
- 服务器生成一组值:{10%, 20%, 30%, 40%, 50%} - 视图显示一个下拉列表,其中包含为该用户生成的值 - 用户必须只选择一个预先生成的值
考虑到用户可以修改 html 并在下拉列表中放置一个随机值 - 例如 80%。我将如何限制/防止这种行为?
我目前正在考虑使用 MemoryCache 来存储允许的值集并使用用户 ID 作为键。不知道是不是最好的解决方案。任何建议将不胜感激。
【问题讨论】:
-
如果你有在页面渲染时提供给用户的值,那么当表单以同样的方式提交时你肯定可以访问相同的值并将它们与用户输入进行比较吗?跨度>
-
@jdurc 并不是那么简单,因为用户(正如我之前所说)可以伪造表单上的值以包含他想要的任何内容。因此,如果服务器生成了一组 {10%, 20%},用户可以简单地将其更改为 {50%, 100%}。然后 {50%, 10%} 将被发送回控制器,而服务器不知道之前生成了什么。问题是即使用户修改了页面上的 html,也可以将预生成的值放在哪里进行验证。
-
我不太确定您是否理解我的问题。你最初是如何为用户生成这些值的,为什么你不能再次做同样的事情来将它们与用户输入进行比较?
-
@jurc 因为值是随机生成的。
标签: asp.net asp.net-mvc security model-view-controller asp.net-core-mvc