Qt Positioning 安全注意事项
本页面重点介绍了使用该模块时可能出现的潜在安全问题,并提出了相应的防范措施。
插件
该模块使用插件系统在运行时选择后端。该选择既可以基于平台,也可以基于应用程序的显式请求。
防止加载恶意插件
插件系统为攻击者提供了将恶意插件加载到应用程序中的机会。由于插件是在应用程序进程中运行的共享库,因此它可以利用应用程序的权限执行任意代码。
Qt 插件文档概述了插件的定位和加载方式,以及影响查找路径的因素。确保无法通过这些路径访问任何不可信的插件,是应用程序开发者的责任。部署应用程序时,请验证以下内容:
- Qt 安装目录和应用程序目录不能被不受信任的用户修改。
- 如果应用程序使用
qt.conf文件,则该文件内容正确,且不受信任的用户无法修改该文件。 - 不可信方无法控制进程环境,因为诸如
QT_PLUGIN_PATH之类的变量会扩展插件查找路径。
应用程序还可以在启动时调用 `QCoreApplication::setLibraryPaths()` 来显式设置查找路径。通过这种方式设置的路径仍需受到保护,防止被不受信任的用户修改。
避免在生产环境中使用测试模式
为了保持自动化测试的确定性,当设置了QT_QTESTLIB_RUNNING 环境变量时,该模块会忽略所有生产环境插件。因此,应用程序将无法获取任何位置或卫星数据源。请确保在生产环境中未设置此变量。
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.