2014-02-20 40 views
0

考慮一個典型的Breeze控制器,它將查詢結果限制爲登錄用戶有權訪問的實體。當瀏覽器調用SaveChanges時,Breeze是否在服務器上驗證報告爲已修改的實體來自原始集?確保查詢限制在SaveChanges期間得到遵守 - Breeze安全性

換句話說,EFContextProvider(在實體框架的情況下)跟蹤已經發放的實體,因此它可以檢查傳遞給SaveChanges的惡意數據嗎?還是BeforeSaveEntity需要驗證用戶有權訪問更改的實體?

+0

相關,關於針對惡意客戶端進行安全保護的更一般性問題:[保護服務器上的Breeze以防止惡意更新外鍵](http://stackoverflow.com/q/17471823/145173) –

回答

1

必須防範在BeforeSaveEntityBeforeSaveEntities方法惡意數據。

的EFContextProvider將保持已經被交給了實體的跟蹤想法可能是,我們不希望這樣做,因爲

  • 的EFContextProvider將不再是無狀態的,這是一個設計目標以促進縮放。
  • 您仍然需要防範BeforeXXX方法中「已添加」實體的惡意數據。
  • 對於我們的一些用戶來說,它實際上是一個有效的用例,可以在沒有首先查詢它們的情況下「修改」實體。