Backend for SQL Server
本文关键字:Server SQL for Backend | 更新日期: 2023-09-27 18:04:25
我创建了一个SQL Server和一个客户端(c#),直接查询服务器。问题是,我觉得这是不安全的,因为每个客户端(总共5个不同的客户端)现在都有连接字符串,我认为这是一个关键的漏洞。
为我的机器上运行的SQL Server创建后端最好的方法是什么?这个SQL服务器将不得不通过互联网从各种客户端访问。最好的选择是一些c#应用程序运行一些库来解释来自客户端的调用?
如果您允许您的客户端在没有登录的情况下进行CRUD,这将永远不会安全,如果您将连接字符串传递给您的客户端,如果没有必要,这也是不安全的。
实现更安全的后端应用程序的更好做法是将操作包装到API中(假设是UpdateClientInfo()
),所有数据库访问都进入API,并且只允许您的客户端使用API。在这种情况下,您的连接字符串将无法通过internet传输。
当现有的api不适合你的客户端时,请他们拉一个请求并实现这个请求,而不是提供连接字符串给他们。
当客户端想要访问您的服务时,还需要要求客户端提供用户名+密码。
有很多可能的解决方案。公开数据库服务器总是存在安全风险。因为你显然是在Windows服务器上运行,我将使用WCF服务来处理客户端和数据库之间的通信。
在c#中实现REST服务也是可能的,它允许你通过端口80或(最好)443进行通信。根据防火墙配置,这可能是一个好主意,因为它是一个标准端口,在大多数情况下,它将为来自客户端的传出通信打开,并且可以在服务器端启用。
查看现有的api(例如在线商店等),看看它们如何对资源进行分组。