在SaveChanges - Breeze安全性期间,确保查询限制得到遵守

时间:2014-02-20 19:01:17

标签: security breeze

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

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

1 个答案:

答案 0 :(得分:1)

必须防范 BeforeSaveEntity BeforeSaveEntities 方法中的恶意数据。

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

  • EFContextProvider将不再是无状态的,这是一个促进扩展的设计目标。
  • 您仍需要防范BeforeXXX方法中“已添加”实体的恶意数据。
  • 对于我们的一些用户而言,实际上是一个有效的用例,可以在不首先查询实体的情况下“修改”实体。