【问题标题】:Entity Framework Security实体框架安全
【发布时间】:2010-04-26 19:48:44
【问题描述】:

在我的组织中,我们刚刚开始将实体框架用于某些应用程序。过去,我们曾推动开发人员将存储过程用于所有数据库访问。除了帮助 SQL 注入之外,我们还尝试授予登录访问存储过程的权限,只是为了保持相对严格的安全性。

虽然通过 EF 中的存储过程可以轻松完成插入、更新和删除操作,但使用存储过程通过 EF 查询数据似乎很困难。但是,使用 LINQ 或 Entity SQL 并允许 EF 创建查询意味着授予用户对整个数据库的读取权限。

其他人是如何处理这个困境的?

【问题讨论】:

  • 在 EF 中使用 proc 查询数据非常容易。你不能做的是编写这些查询,因为 procs 不构成。这不是 EF 限制;这是 procs 的基本限制。

标签: entity-framework .net-3.5


【解决方案1】:

您尝试应用什么样的数据保护?

使用 EF,您可以编写一个可单元测试的业务逻辑层,该层将处理比数据库层更多的授权场景(尽管我可以看到多层安全性如何让您感觉更安全):

  • 查询 AD(该用户是该用户的经理吗?)
  • 调用网络服务
  • 检查其他环境上下文

如果您的情况意味着您还没有准备好将数据库视为数据存储而不是安全和业务逻辑层,那么 EF 可能不适合您的项目。

附: EF 将保护您免受 SQL 注入。

【讨论】:

  • 完全正确。在查看了我用于从数据库读取数据的一些安全实践之后,我确定它们没有提供任何真正的安全性。
猜你喜欢
  • 2011-05-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-05
相关资源
最近更新 更多