微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

通过Ajax发布安全保存的最佳实践发布了asp.net MVC 3

我正在为几个用户开发Asp.Net MVC 3 / knockout.js网站,他们可以保存有关其网站的信息
这是该模型的简单版本

class{
string Id
string Name
string Url
string Description
}

我想构建一个响应迅速的UI,以便所有加载保存等都将通过Ajax完成.

所以场景是当用户将som网站添加到他的列表并点击保存时,json字符串被发布到控制器中的Action方法.

一切正常.

问题是:

如何确保用户没有篡改id并实际保存有关其他用户网站的信息?

我当然是隐藏的,但任何具有一些网络知识的邪恶的人都可以轻易地改变身份.

解决方法

您应该使用身份验证.使用Authorize属性修饰将执行更新的操作.这将确保发送AJAX请求的用户经过身份验证,并且无法更改其用户名.然后,您将检查您的数据库中是否他想要更新的站点的ID属于他.您当然会有一个包含用户站点之间映射的表.

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐