2

这是我所面临的:

  • A:使用 QT/C++ 编写的客户端应用程序
  • B:服务器有apache+php+mysql+linux

现在 A 想使用 RESTful 接口向 B 发布一些私有数据,问题是:

  1. 如何保证数据传输的安全
  2. 如何确保只有合法客户发布数据。

我正在考虑 OpenSSL,但我不知道从哪里开始,有人会告诉我方法吗?

PS.我的客户端应用程序可以由用户免费下载,无需注册或任何用户信息。然后用户使用我的应用程序运行测试然后发布他们的结果。最后,我想确保这些结果数据由我的客户端应用程序发布,因为假数据可能很烦人

4

2 回答 2

0

要安全地传输数据,您需要使用 SSL 加密连接。首先,查看Apache 文档以了解其工作原理、如何生成自签名证书并相应地配置所有内容。如果您进行搜索,您还可以在网络上轻松找到更简洁的说明。

第二部分取决于您的条件。如果您的应用程序在像 Intranet 这样的封闭环境中工作,那么也许您可以通过 IP 地址限制访问?否则,您需要某种授权。您可以使用内置的 HTTP 授权。检查文档:

或在网上搜索更多说明。

如果您已经有一些授权系统。就像用户数据库一样。然后,您将需要实现 QT/C++ 应用程序能够使用的 REST API。

于 2013-03-08T04:34:14.533 回答
0

Qt 不会为您保护您的数据做任何事情。您应该首先专注于保护您的 RDBMS。当然,您应该仔细编码您的 Qt 客户端应用程序,以通过检查和清理所有输入等来防止意外行为,但如果您不打算分发它,这不应该是您最直接关心的问题。

如果您计划使用 PostgreSQL 作为应用程序的后端,您可以采取一些措施来降低将任何服务暴露于互联网所带来的风险。最基本的:

  • 设置具有适当规则的防火墙。仅允许来自受信任来源的入站连接。

  • 仅接受 SSL 连接,即使使用自签名证书也是如此。

  • 强制使用强密码。如果更合适,请使用客户端证书。

  • 将您的 pg_hba.conf 文件设置为仅接受来自已知/可信地址的连接。

git上提供了一个使用 PostgreSQL 的非常好的示例,请单击此处

于 2013-03-08T04:41:02.410 回答