1

可能是一个新手问题,但无论如何我都会问它。我是一名网络表单开发人员,但是我得到了一个 MVC 应用程序来照顾并发现我认为可能是一个安全漏洞,只是想在我向雇主举报之前检查我的想法是否正确。

基本上我们有一个编辑对象的视图(称之为汽车)所以对象包含品牌、型号、制造年份、颜色、注册编号

该视图显示上述所有内容,但仅允许编辑颜色。

问题是其他属性被写入隐藏字段中的 HTML,然后被回发并用于填充被推送到数据库的汽车对象。

我看到了这个想法,如果我改变这些隐藏的字段会发生什么,果然,我现在有一辆生产日期为 10 年后的汽车......

最初的开发人员说这就是 MVC 的工作方式……我是新手(实际上有 2 小时的 MVC 经验),所以目前无法对此提出异议。

有人有什么想法吗?任何人都可以建议应该如何做到这一点 - 我还告诉我这样做的方式(即从数据库中提取汽车并只更新视图可以实际操作的字段)也是错误的......

我很感激建议!

干杯

4

1 回答 1

1

无论如何,这不是“MVC”所固有的。它更符合 Web 的无状态特性和所有 RESTful 类型的东西,但这种特殊情况并不合理。听起来如果您只想要一组有限的可更新字段,您应该只有某种形式的对象标识符(如 RDBMS 中的主键)和要更新的字段(或者控制器应该丢弃其余部分) . 您当然应该允许任意访问为了追求不携带状态而应该限制的字段。

于 2012-09-07T17:15:50.857 回答