通过Ajax帖子asp.net MVC 3处理安全保存的最佳实践

通过Ajax帖子asp.net MVC 3处理安全保存的最佳实践,ajax,asp.net-mvc-3,security,post,asp.net-ajax,Ajax,Asp.net Mvc 3,Security,Post,Asp.net Ajax,我正在为几个用户开发一个Asp.NETMVC3/knockout.js网站,在那里他们可以保存自己网站的信息 下面是该模型的一个简单版本 class{ string Id string Name string Url string Description } 我想建立一个响应速度非常快的UI,这样所有的加载保存等都将通过Ajax完成 因此,当用户将som网站添加到列表中并单击“保存”时,json字符串将发布到控制器中的Actionmethod 一切正常 问题是: 我如何确保用户没有篡改id,并

我正在为几个用户开发一个Asp.NETMVC3/knockout.js网站,在那里他们可以保存自己网站的信息 下面是该模型的一个简单版本

class{
string Id
string Name
string Url
string Description
}
我想建立一个响应速度非常快的UI,这样所有的加载保存等都将通过Ajax完成

因此,当用户将som网站添加到列表中并单击“保存”时,json字符串将发布到控制器中的Actionmethod

一切正常

问题是:

我如何确保用户没有篡改id,并且实际保存了其他用户网站的信息


Id当然是隐藏的,但是任何有网络知识的坏人都可以很容易地更改Id。

您应该使用身份验证。使用Authorize属性修饰将执行更新的操作。这将确保发送AJAX请求的用户经过身份验证,并且不能更改用户名。然后,您将在数据库中检查他试图更新的站点的id是否属于他。当然,您将有一个包含用户和站点之间映射的表


如果用户篡改了站点id并输入了不属于他的站点的某些值,则在执行查询以验证给定站点id是否属于给定用户名时,控制器操作中的您将检测到该值。他不能篡改他的用户名,因为它存储在加密的身份验证cookie中,除非他使用不同的用户名登录,在这种情况下,他已经知道密码。

您之前没有对用户进行身份验证吗?你不能使用用户身份吗?