在我正在构建的网站上,我需要允许用户编辑他们的订单。很容易。但是如何确保一个用户不能编辑其他用户的订单呢?我是否在模型或控制器中执行检查以验证订单是否属于经过身份验证的用户?
问问题
250 次
2 回答
1
在视图(是的,视图)中进行检查,以便快速响应用户错误。
在控制器中进行检查以确保数据完整性。
例如,在基于 Web 的应用程序中,您可能有浏览器 JavaScript 来检查所有字段,包括用户名,因此用户可以快速响应以修复错误交易。但是,回到您的服务器,您不能依赖浏览器来真正验证数据,因为浏览器不在您的控制范围内——它可能被有意或无意地损坏,并且没有按照您的意愿进行验证。因此,您需要重新验证服务器上的所有内容以确保完整性。
于 2010-05-28T13:54:42.900 回答
0
好吧,希望您的网站没有任何方式让用户甚至尝试编辑其他人的订单。但如果仍然可以尝试,您可以将该逻辑放入模型或控制器中。这是一个见仁见智的问题。有人会说,控制器应该做访问检查之类的事情,而模型只知道如何修改自己。其他人会说“胖模型,瘦控制器”,并说安全检查需要跨控制器重复使用,因此它们应该进入模型。这是你的电话。
于 2010-05-28T13:38:06.417 回答