首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >论数据库通信安全

论数据库通信安全
EN

Stack Overflow用户
提问于 2013-12-23 15:52:55
回答 2查看 288关注 0票数 2

因此,我一直在阅读有关桌面应用程序和数据库服务器的安全性的文章。以前,当我构建链接到数据库的应用程序时,我采用了简单的路线,直接将硬编码的连接字符串存储在源代码中。自从二进制文件没有分发给第三方以来,这种方法一直有效。然而,现在我正在从事一个项目,它的二进制文件被绑定到第三方使用,在这种情况下,与服务器的通信成为我需要处理的一个安全问题。

由于没有从客户端机器与远程数据库的直接连接是一个优先事项,我理解服务器/客户端数据库服务是一个很好的选择。在这种情况下,客户端机器使用TCP向服务器发送请求,然后服务器使用存储过程处理请求并相应地响应客户端。

我对此提出的问题如下:

这个设置是一个明智的设置,还是我不知道的其他设置更适合于我正在进行的项目?

二、如何保证这种连接的安全?我可以使用OpenSSL生成的安全证书轻松地设置到服务器的SSL连接,但是我不确定这是否是保护桌面应用程序连接的正确方式,或者这种方法是否主要用于HTTPS。一般情况下,什么时候才能确保连接(在某些情况下,这并不重要,例如,如果我所做的只是来回发送布尔人)?有什么好的资源来讨论这些问题吗?例如,我在我的Windows PC上安装了很多联网的应用程序,但我没有看到他们中的很多人在我的电脑上安装了安全证书。怎么回事?

完全公开:我是一个C++ (业余爱好者)程序员,我使用Boost库来满足我的网络编程需求,OpenSSL用于我的SSL加密。不过,我希望这个问题可以在不太理会这些事实的情况下回答:)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-12-23 18:20:32

答案:

让您的应用程序与web服务对话,然后与数据库对话是一个更好的设置。这将数据库从客户端抽象出来(因此可以直接从internet访问)。

二、这取决于您的系统的威胁是什么。如果您从上面提到的web服务中销售的数据是不敏感的数据,并且不是特定于用户的数据(例如,允许搜索公共照片库的应用程序,所以您的web服务只需返回带有URL的结果集),那么您就可以通过使用SSL来度过难关了。其他应用程序则以各种各样的方式安装自己的证书。他们可以从CA获得证书,比如verisign,所以您的计算机已经信任它了。或者,他们可以使用应用程序的二进制文件部署公共证书,并在应用程序中处理它(这是一种证书绑定形式)。

2.如果您需要客户端进行身份验证,原因要么是为了确保不只是任何人可以使用您的web服务,要么是为了支持更高级的授权模型,那么您需要实现某种身份验证。这将是一个需要解决的更大的问题。

票数 1
EN

Stack Overflow用户

发布于 2019-02-11 17:59:51

确保您使用的是CA签名的证书,而不是自签名证书.还可以考虑在服务和数据库之间进行相互身份验证。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20746854

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档