c# - Entity Framework with LINQ 是否符合此 STIG?

标签 c# asp.net-mvc entity-framework stig

我正在使用 Microsoft 的 MVC 和所有其他相关技术为 DoD 开展一个项目。出于安全目的,我必须遵循安全技术实现指南 (STIG)。

version 3, Release 9, section 3.10.1 , 表示

Allow access to the database through views no directly to underlying tables in the database.

(APP3540.4: CAT II) The Designer will ensure the application does not directly access the tables in a database.

我可以将 Entity Framework 与 LINQ 一起使用吗?

最佳答案

这是一个直接link到 STIG。这是一个旧版本,但我正在查看最新版本,它们完全相同。我认为文本已经很多年没有改变了,这很不幸,因为它不是很清楚。规则标题说使用参数化语句(我将其视为任何 CRUD 操作),但也不提供对表的直接访问。

Entity Framework 向数据库发送参数化查询,这是一种直接访问的形式。我觉得不安全吗?绝对不。但有人可能会争辩说 STIG 说不要这样做。问题是 STIG 还说使用存储过程代替直接访问,但如果编写不正确,您也很容易遇到 SQL 注入(inject)漏洞。

我的解释?最后,重点是解决 SQL 注入(inject)问题,因此只要您使用参数化查询(即 EF、Dapper、ADO.NET 等)或编写适当的存储过程来缓解这种情况,就应该没问题。

关于c# - Entity Framework with LINQ 是否符合此 STIG?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27256801/

相关文章:

c# - 您的自定义类与数据库有何关系

c# - 如何设置代码格式以允许行尾注释?

javascript - 向 css 添加绝对路径会导致 Gecko Engine 无法呈现页面

entity-framework - EF 急切加载多个子子集合

c# - 使用 Entity Framework 返回所有相关实体

mysql - EF 和 MySQL 表上次更新

C# 方法重载解析不选择具体的泛型覆盖

c# - 如何使用 NUnit 和 Rhino Mocks 模拟 HttpContext.Current.Items

c# - 如何获取 HttpRequestMessage 数据

jquery - 将 JSON 作为字符串发布