SQL Server的后端

时间:2016-08-29 09:41:41

标签: c# sql-server backend

我创建了一个直接查询服务器的SQL Server和一个客户端(c#)。问题是我觉得这不安全,因为每个客户端(总共5个不同的客户端)现在都有连接字符串,我相信这是一个至关重要的漏洞。

为在我的计算机上运行的SQL Server创建后端的最佳方法是什么。必须可以通过Internet从各种客户端访问此SQL Server。一些C#应用程序运行一些库来解释来自客户端的调用是最好的选择吗?

2 个答案:

答案 0 :(得分:2)

如果您允许客户端在没有登录的情况下进行CRUD,那将永远不会安全,如果您将连接字符串传递给客户端,如果没有必要,这也是不安全的。

实现更安全的后端应用程序的更好做法是将操作包装到API中(比如说UpdateClientInfo()),所有数据库访问都进入API并且只允许客户端使用API​​。在这种情况下,您的连接字符串不会通过互联网传输。

当现有API不适合您的客户时,请让他们提取请求并实施请求,而不是向他们提供连接字符串。

还有必要要求客户在他们想要访问您的服务时提供用户+密码。

答案 1 :(得分:1)

有许多可能的解决方案。公开数据库服务器始终存在安全风险。由于您显然在Windows服务器上运行,因此我使用WCF服务来处理客户端与数据库之间的通信。

也可以在C#中实现REST服务,它允许您通过端口80或(最好)443进行通信。这取决于防火墙配置,无论如何都可能是一个好主意,因为它是一个标准端口在大多数情况下,它将从客户端打开以进行传出通信,并且可以在服务器端启用。

查看现有的API(例如在线商店等),了解他们如何对资源进行分组。这将有助于您自己设计更好的API。