gpt4 book ai didi

asp.net-mvc - 在 ASP.NET MVC 中保护 URL 上的 ID

转载 作者:行者123 更新时间:2023-12-04 22:09:04 24 4
gpt4 key购买 nike

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

当用户编辑一个项目时,他们将在一个 URL 上进行编辑,例如 /edit/5 ,其中数字代表数据库中行的 ID。

我对一个用户只是将 ID 更改为另一个用户项目的 ID 并能够更改它有一些担忧。为了保护ID,我想到了以下解决方案:

  • 加密它,所以它不能轻易改变 - 但是当然我每次回发时都必须有代码来解密它。
  • 更改数据库架构,以便在 ID 旁边也生成一个 GUID,并在 URL 中使用它。
  • 保持可读 ID 不变,并在项目查询中包含登录用户的 UserID,以便查询如下所示:

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

  • 也许有更好的方法或我没有想到的方法。防止此问题的首选方法是什么?

    最佳答案

    绝对是第三种解决方案。从 加密的 cookie(参见 FormsAuthentication )获取登录用户 ID,并在 SQL 查询中使用它来验证该项目是否属于该用户。

    关于asp.net-mvc - 在 ASP.NET MVC 中保护 URL 上的 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1723323/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com