繁体   English   中英

Breeze.js - 保护IQueryable调用

[英]Breeze.js - Securing IQueryable calls

我对此很陌生,但我已经开始了解使用Breeze暴露IQueryable <>的安全风险。 有人请告诉我一些最佳实践(或仅仅是一些建议),以保护在JavaScript中公开的IQueryable集合吗? 谢谢。

我不会通过IQueryable公开任何应该通过随机查询发送给客户端的数据。 因此可以暴露投影或DTO。

我不确定这是否能回答你的问题......你担心“安全风险”是什么?

我也是第二个问题。 但要在Ward问的问题中添加一些细节:

在保护可查询服务时,会想到两个传统问题:

1)垂直安全性:哪些项目是当前登录的用户(基于用户身份或角色),不允许在UI中查看。 那些需要从可查询列表中删除。 IMO,这可以通过在返回的IQueryable上链接一些排除逻辑,作为可查询的ActionFilter魔法的一部分来完成。 2)水平安全性:某些模型包含不适合登录用户查看(和/或编辑)的字段。 这更难以处理,因为它不仅仅是从返回的IQueryable中删除实例。 返回的类具有不同的形状,因此可以由json格式化程序处理,省略基于安全性的字段(AFAIK搞砸了breeze元数据)或者返回DTO,在这种情况下,因为元数据中不存在DTO它不是一个完整的生命周期(可更新)类? (我问这不说明)

我希望看到内置支持或易于实现数字2的配方。 也许一些示例代码修改客户端元数据,使DTO与模型对象完美配合。 新的VS 2012 SPA模板(在TodoList应用程序中)似乎在可查询和插入/更新方面推送模型对象的DTO变体。 这类似于传统的MVC模型视图......

最后 - 我添加了一个请求来自动处理插入和更新的重叠安全问题。 这是2)的互惠方面。 某些用户不应该能够编辑某些字段。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM