【问题标题】:Best practise for handling secure saving through Ajax posts asp.net MVC 3通过 Ajax 发布 asp.net MVC 3 处理安全保存的最佳实践
【发布时间】:2012-02-10 06:36:28
【问题描述】:

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

class{
string Id
string Name
string Url
string Description
}

我想构建一个响应速度非常快的 UI,因此所有加载保存等都将通过 Ajax 完成。

所以这种情况是当用户将一些网站添加到他的列表中并点击保存时,一个 json 字符串被发布到控制器中的 Actionmethod。

一切正常。

问题是:

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

id当然是隐藏的,但是任何有一点网络知识的坏人都可以轻松更改id。

【问题讨论】:

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

标签: ajax asp.net-mvc-3 security post asp.net-ajax


【解决方案1】:

您应该使用身份验证。使用 Authorize 属性装饰将执行更新的操作。这将确保发送 AJAX 请求的用户已通过身份验证,并且他无法更改其用户名。然后,您将检查您的数据库,如果他尝试更新的站点的 id 属于他。您当然会有一个包含用户和站点之间映射的表。

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

【讨论】:

    猜你喜欢
    • 2011-04-25
    • 2016-06-06
    • 1970-01-01
    • 1970-01-01
    • 2013-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-30
    相关资源
    最近更新 更多