gpt4 book ai didi

asp.net-mvc - 查看模型标识符

转载 作者:行者123 更新时间:2023-12-03 10:37:54 24 4
gpt4 key购买 nike

我正在尝试开始一个新的 ASP.NET MVC4 项目,并且有一些关于 View Model 安全性的问题。

假设我有一个类来代表应用程序用户

public class User
{
public int UserID { get; set; }
public string Name { get; set; }
}

另一个代表应用程序用户任务的类
public class UserTask
{
public int TaskID { get; set; }
public int UserID { get; set; }

public string Task { get; set; }
}

我的同事似乎认为 UserTask 类的 View 模型表示不应该包含出于安全目的的 UserID(以防止人们篡改 UserID)。

例子
public class UserTaskViewModel
{
public int TaskID { get; set; }
public string Task { get; set; }
}

我一生都找不到任何支持这一主张的文件,也无法得到直接的答案。

这是普遍现象吗?出于安全目的,ViewModel 是否应该从 View 中“隐藏”特定属性?我知道如果数据来自模型绑定(bind),它可能会被篡改,只是想弄清楚这种情况下的首选方法/最佳实践是什么。

最佳答案

暴露 UserId 可能是一个潜在的安全问题,因为:

  • 你透露信息和
  • 它可以被篡改。

  • 如果您要列出不同用户的任务,那么您需要了解每个任务的用户。我想您可以混淆 UserId,或者当他们与任务交互(编辑/删除)时,您可以简单地检查用户是否具有访问权限。

    如果只允许用户与他们自己的任务进行交互,则无需包含 userId,因为您已经知道用户是谁。

    关于asp.net-mvc - 查看模型标识符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18413312/

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