gpt4 book ai didi

.net - 为什么我们不应该在 View 中使用域对象?

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

我只是很困惑为什么在 View 中使用域对象是不好的做法?有人告诉我它可以留给绑定(bind)攻击模型,但我不确定这是什么或如何完成。我也不太明白将属性复制到 View 模型将如何解决这个问题。

提前致谢

最佳答案

您的域对象通常包含定义标志或位的属性,如 isAdmin, isDeleted, isAuthorized或您可能不希望最终用户弄乱的任何其他安全或敏感信息,即使您仅以只读状态显示它,您也会在 View /html中放弃属性名称,从而为一些“智能用户”提供机会玩你的 POST Action ,如果你没有采取正确的预防措施,这可能会导致安全漏洞。

如果您使用 ViewModel,您将被迫从 ViewModel <-> Model 重新映射。 (域对象),在此重新映射中,您可以确保分配正是您想要的任何特定用户的分配,例如:

if(CurrentUser.IsAdmin)
{
//Assign just if the currrent user is admin
Model.IsDeleted = ViewModel.Delete;
}

关于.net - 为什么我们不应该在 View 中使用域对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12228628/

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