加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 实体框架4.0扩展和安全

发布时间:2020-12-16 06:36:35 所属栏目:asp.Net 来源:网络整理
导读:我想使用ORM,并且一直在关注EF 4.这个平台是否可扩展.我在网上看到很多东西,但是一切看起来都非常偏向于某种方式.任何人都知道基准或非主观信息. 在这一点上,EF是否会阻止SQL注入或XSS.我知道它使用了参数化查询,但这还够吗? 任何帮助表示赞赏. 解决方法 好
我想使用ORM,并且一直在关注EF 4.这个平台是否可扩展.我在网上看到很多东西,但是一切看起来都非常偏向于某种方式.任何人都知道基准或非主观信息.

在这一点上,EF是否会阻止SQL注入或XSS.我知道它使用了参数化查询,但这还够吗?

任何帮助表示赞赏.

解决方法

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

Is EF Scalable

很难(和主观)回答,但IMO是的.

以下是几个原因:

>使用通用查询语言(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注入攻击 – 它们只能为开发人员提供防止它的工具.

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

在这种情况下,您需要使用参数化查询来防止SQL注入.对于大多数EF工作,您将使用LINQ编写查询,这更加安全,因为它在成为SQL之前会经过很多阶段的补充.

XSS在客户端被利用,例如注入JavaScript,狡猾的电子邮件等.与Entity Framework无关.使用HTML编码之类的东西在客户端完成XSS的预防.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读