当前位置:  开发笔记 > 编程语言 > 正文

实体框架4.0扩展和安全性

如何解决《实体框架4.0扩展和安全性》经验,为你挑选了1个好方法。

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

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

任何帮助表示赞赏.



1> RPM1984..:

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

EF可扩展

很难(和主观)回答,但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).

EF是否会阻止SQL注入或XSS

没有ORM工具可以真正"防止"SQL注入攻击 - 它们只能为开发人员提供防止它的工具.

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

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

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


你的答案的第一部分似乎是谈论平台不可知论,而不是可扩展性.除非你暗示可扩展性=== Oracle?
推荐阅读
手机用户2502852037
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有