首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过桌面应用程序/安全性查询数据库

通过桌面应用程序/安全性查询数据库
EN

Stack Overflow用户
提问于 2013-03-02 00:53:53
回答 2查看 699关注 0票数 2

我将使用Qt框架编写桌面应用程序,然后将其发布给公众。但我担心这种方法的安全性。

我通常使用PHP编写代码,因此我知道SQL注入和任何与任何查询安全相关的数据库,但我遇到了一个以前从未遇到过的问题:桌面应用程序将查询从客户机发送到服务器,因此,我听说,并不像服务器到服务器(PHP)那样安全。

主要的安全风险是什么,Qt如何防止它们,或者如何通过特定的编码技术来防止它们?

对不起,我不能说得更具体了,但我对桌面应用程序领域没有真正的经验。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-03-02 01:57:56

Qt对保护您的数据没有任何帮助。首先,您应该集中精力保护RDBMS。当然,您应该仔细编写Qt客户端应用程序的代码,通过检查和清理所有输入等来防止意外行为,但是如果您不打算分发它,这不应该是您最直接的考虑。

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

  • 用适当的规则设置防火墙。只允许来自受信任源的入站连接。
  • 仅接受SSL连接,即使使用自签名证书也是如此.
  • 强制使用强密码。如果更适当,请使用客户端证书。
  • pg_hba.conf文件设置为仅接受来自已知/受信任地址的连接。

Debian/Ubuntu拥有优秀的PostgreSQL包。安装后,您可以轻松地设置PG,以允许SSL连接,而无需手动生成证书。

相关的PostgreSQL文档:

  • 使用SSL保护TCP/IP连接
  • 客户端认证
  • 客户端连接默认值

我可以为您提供一个非常基本的Qt应用程序示例(未完成的),如果您愿意的话,它可以设计为与PostgreSQL一起工作。告诉我就行了。

编辑:将示例应用程序上传到GitHub:实例应用。试图整理,但仍然有一个混乱的许多字符串,最初是用西班牙语写的。无论如何,如果您从Qt开始,仍然可以找到一些有用的代码。哦,我正在使用Qt5,必须为Qt编译自己的PostgreSQL驱动程序(如果您在Linux上的话,这不是什么大不了的事)。我之所以提到这一点,是因为该应用程序可能使用Qt4编译,也可能不编译。祝好运!

票数 4
EN

Stack Overflow用户

发布于 2013-03-02 01:10:08

关于

桌面应用程序将查询从计算机发送到服务器

我不知道您正在考虑的确切情况,但请记住,在这种情况下可以使用存储过程来降低sql注入的风险。如果桌面应用程序只具有在db服务器上调用一系列存储过程的权限,那么您已经大大降低了风险。如果桌面客户端根本不受信任,那么另一种选择是不让客户端桌面应用程序直接访问数据库。您可以编写一个驻留在服务器上的层,服务器为客户端执行所有db访问,客户端与服务器交互,而不是数据库。

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

https://stackoverflow.com/questions/15169393

复制
相关文章

相似问题

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