【发布时间】:2014-03-27 04:18:29
【问题描述】:
我们的数据库有整数作为主键。让我们假设一个用例,其中有代表管理分配给他们的不同客户。一种情况是代表可以更新客户联系信息。我们的页面按 id 显示联系信息。当代表按下更新时,它使用 id 进行更新。如果代表更改 ID,这会带来安全问题,他们可以查看并更新其他客户(可能未分配给他们)的联系信息。我相信这是一个普遍的问题。
一种方法可能是在会话中保留密钥,加密 id 并在更新时使用该密钥对其进行解密。有没有更好的办法?
另外,既然不同的页面都要做同样的事情,那么在asp.net mvc中是否有一个通用的方法可以遵循?
【问题讨论】:
-
您可以简单地使用某种盐渍。每次生成 GUID,在两者之间插入您的 id(但在特定位置)。送出去的时候,用这个盐腌。当您在查询字符串中收到它时,取出您的 id 并通过其他东西。为此,您可以编写静态类,供所有人使用。
-
你能告诉使用哪些类来执行此操作吗?谢谢。
标签: c# sql asp.net-mvc security