gpt4 book ai didi

asp.net - Entity Framework 4.0 扩展和安全性

转载 作者:行者123 更新时间:2023-12-02 12:11:18 25 4
gpt4 key购买 nike

我想使用 ORM,并且一直在关注 EF 4。这个平台是否可扩展。我在网上看到了很多东西,但一切看起来都非常有偏见。任何人都知道基准或非主观信息。

在这一点上,EF 是否可以防止 SQL 注入(inject)或 XSS。我知道它使用了参数化查询,但这足够了吗?

感谢任何帮助。

最佳答案

好的,我在这里看到两个问题。

Is EF Scalable

很难(而且主观)回答,但在我看来是的。

以下是一些原因:

  • 使用通用查询语言 (LINQ)
  • 允许多个提供商(SqlServer、Oracle 等)
  • 允许双向映射(代码优先、模型优先、数据库优先)
  • 包括“经典 ADO.NET”支持(存储过程、Entity-SQL)

可扩展性的主要真正好处是框架如何构建在 LINQ-to-Entities 上。当您编写查询时,您不是针对 SQL Server 或 Oracle 进行编写,而是针对模型进行编写。根据您设置的提供程序(在 web.config 中),EF 会将这些模型查询转换为适当的 T-SQL(或 P-SQL)。

因此(理论上),您可以针对 SQL Server 编写代码,然后将 web.config 提供程序更改为 Oracle,并且您的代码应该可以工作。显然,Entity-SQL 的情况并非如此(因为您正在编写 T-SQL,而不是 LINQ)。

Does EF prevent SQL injection or XSS

没有任何 ORM 工具能够真正“阻止”SQL 注入(inject)攻击 - 它们只能为开发人员提供阻止它的工具

与使用参数化查询的经典 ADO.NET 一样, Entity Framework 具有 Entity-SQL,它允许执行预先生成的 SQL、存储过程等。

在这种情况下,需要使用参数化查询来防止SQL注入(inject)。对于大多数 EF 工作,您将使用 LINQ 编写查询,这要安全得多,因为它在成为 SQL 之前会经过许多阶段的处理。

XSS 在客户端通过注入(inject) JavaScript、狡猾的电子邮件等方式被利用。与 Entity Framework 无关。 XSS 的预防是在客户端通过 HTML 编码等方式完成的。

关于asp.net - Entity Framework 4.0 扩展和安全性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3973206/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com