gpt4 book ai didi

c# - 在 C# 应用程序中保护数据层

转载 作者:可可西里 更新时间:2023-11-01 08:18:59 27 4
gpt4 key购买 nike

我在考虑如何保护 C# 应用程序中的数据层,在这种情况下,该层可以是与应用程序本身一起存储的 LINQ to SQL 模型图,其中包含到 SQL Server 数据库的连接字符串。

或者它可能是应用程序和网络服务之间的连接。

要么您需要实现某种安全措施,例如,应用程序中的连接字符串很容易被逆向工程,Web 服务很容易被跟踪和用于应用程序原始目的之外的其他原因。

所以我的问题更简短:在处理 Web 服务和/或从 Windows 窗体应用程序直接连接到 SQL Server 时如何解决安全问题?

最佳答案

在您的情况下,有两种主要的攻击可能性:

  • 窃取连接字符串然后直接访问数据库
  • 不使用 UI 直接调用 C# 代码中的方法

对于连接字符串,您需要将其以加密形式存储在配置文件中。问题是 winforms 应用程序中需要有足够的信息,以便它可以解密和使用它。

要直接访问代码,您可以使用代码访问安全和混淆。

在你的情况下,我不会让 Windows 应用程序直接访问数据库。让 Windows 应用程序调用 WCF 服务,WCF 服务将访问数据库。

允许用户的用户帐号调用WCF服务,WCF服务运行在允许访问数据库的帐号下,用户的用户帐号无权访问数据库。

具有 3 层的 Windows 应用程序:

  • 用户界面
  • 业务(安全检查应该向用户显示什么 UI)
  • 代理

2 层的 WCF 服务:

  • 外观/业务层(安全检查是否允许用户使用此数据调用此方法)
  • Entity Framework 数据模型

两个层的通用 dll

  • 契约(Contract)/WCF 接口(interface)
  • 数据传输对象

有关代理、契约(Contract)和 DTO 的信息,请观看此视频:

http://www.dnrtv.com/default.aspx?showNum=103

关于c# - 在 C# 应用程序中保护数据层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1214621/

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