加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

.net – 我们为什么不在视图中使用域对象?

发布时间:2020-12-16 06:31:40 所属栏目:asp.Net 来源:网络整理
导读:我很困惑为什么在视图中使用域对象是不好的做法?我被告知可以留下模型绑定攻击,但我不确定这是什么或如何做到这一点.我也不太明白如何将属性复制到viewmodel将解决此问题. 提前致谢 解决方法 您的域对象通常包含定义标志或位的属性,如isAdmin,isDeleted,isA
我很困惑为什么在视图中使用域对象是不好的做法?我被告知可以留下模型绑定攻击,但我不确定这是什么或如何做到这一点.我也不太明白如何将属性复制到viewmodel将解决此问题.

提前致谢

解决方法

您的域对象通常包含定义标志或位的属性,如isAdmin,isDeleted,isAuthorized或您可能不希望最终用户搞砸的任何其他安全或敏感信息,即使您只是以您给出的只读状态显示它视图/ html中的属性名称,为一些“智能用户”提供了使用POST操作的机会,如果您没有采取正确的预防措施,这可能会导致严重漏洞.

如果您使用ViewModel,则必须从ViewModel< - >重新映射.模型(域对象),在此重新映射中,您可以确保分配只是您希望从任何特定用户获得的分配:

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读