小编Mar*_*tin的帖子

保护ASP.NET MVC中URL的ID

我正在使用ASP.NET MVC中的典型CRUD应用程序,其中将有多个用户帐户,每个用户帐户都有许多项目.

当用户正在编辑项目时,他们将在诸如/ edit/5之类的URL上执行此操作,其中数字表示数据库中行的ID.

我有一些用户担心只是将ID更改为另一个用户的项目的ID并能够更改它.为了保护ID,我发现了以下解决方案:

  1. 对它进行加密以使其无法轻易更改 - 但当然我必须每次回发时都有代码来解密它.
  2. 更改数据库模式,以便在ID旁边生成GUID,并在URL中使用它.
  3. 保留可读ID,并在项目查询中包含登录用户的UserID,以便查询如下所示:

    database.Items.SingleOrDefault(c => c.UserID == [当前登录的用户ID] && c.ID == itemID);

也许有一种更好的方式或方式我没有想到.您首选的方法是防止此问题?

security asp.net-mvc

4
推荐指数
2
解决办法
1230
查看次数

标签 统计

asp.net-mvc ×1

security ×1