我遇到了我期望的在web开发中的一个常见问题。我有一个ASP.NET MVC 2.0电子商务网站。我通过视图模型将项目成本传递到产品页面视图 - 此成本可能因用户类型,用户历史记录,购买数量等而异。ASP.NET MVC - 确保数据完整性
我想保证当用户提交表单购买该产品,我原来发送的成本是相同的,即视图模型的成本属性没有改变。对于普通用户来说,这不是问题,但对于恶意的人来说,在途中更改价值是相对简单的,这样我的产品成本就会降低,例如$ 1而不是$ 999。
显然,我可以回到数据库并在表单提交后重新计算成本 - 但这看起来像是一个昂贵的操作,我想知道这是如何正常完成的。我脑海中最明显的解决方案是获取字段的哈希码(或者只是加密值),并将其作为隐藏输入添加到表单中,并确保成本字段的哈希码(或加密值)相同。
有谁能告诉我这是如何定期完成和/或如果我的建议解决方案有问题?
由于提前,
JP
谢谢丹!我有点期待这个答案,但我喜欢有一个像StackOverflow这样的地方,我可以问我的“基本”问题! – 2010-11-01 03:19:05