Security 确保在SaveChanges期间遵守查询限制-Breeze安全

Security 确保在SaveChanges期间遵守查询限制-Breeze安全,security,breeze,Security,Breeze,考虑一个典型的Breeze控制器,它将查询结果限制为登录用户有权访问的实体。当浏览器调用SaveChanges时,Breeze是否在服务器上验证报告为修改的实体是否来自原始集合 换句话说,EFContextProvider(在案例实体框架中)是否跟踪已分发的实体,以便检查传递给SaveChanges的恶意数据?或者,BeforeSaveEntity是否需要验证用户是否有权访问更改的实体?您必须在BeforeSaveEntity或BeforeSaveEntities方法中防范恶意数据 EFCont

考虑一个典型的Breeze控制器,它将查询结果限制为登录用户有权访问的实体。当浏览器调用
SaveChanges
时,Breeze是否在服务器上验证报告为修改的实体是否来自原始集合


换句话说,
EFContextProvider
(在案例实体框架中)是否跟踪已分发的实体,以便检查传递给
SaveChanges
的恶意数据?或者,
BeforeSaveEntity
是否需要验证用户是否有权访问更改的实体?

您必须在BeforeSaveEntity或BeforeSaveEntities方法中防范恶意数据

EFContextProvider将跟踪已经分发的实体的想法可能是我们不想做的,因为

  • EFContextProvider将不再是无状态的,这是一个便于扩展的设计目标
  • 您仍然需要防止BeforeXXX方法中“添加”实体的恶意数据
  • 对于我们的一些用户来说,在没有首先查询实体的情况下“修改”实体实际上是一个有效的用例
安全防范恶意客户端的相关、更一般的问题: