c++ - 是否可以阻止共享/动态库的网络访问?

标签 c++ qt sockets tcp shared-libraries

我正在学习如何创建 API 以使我的应用程序可插入,我用 C++Qt 创建了一个演示应用程序> 用户可以在其中向应用程序添加例如新按钮。

作为一项安全功能,我希望能够为应用程序用户提供一种方法来关闭他们希望这样做的插件的网络访问。例如,如果有人为我的应用程序创建了一个闭源插件,我想让用户阻止通过该插件执行的任何网络事件。

我还想在不让插件在不同进程中运行的情况下执行此操作。

所以我的问题是:是否可以在不关闭整个应用程序网络访问的情况下关闭应用程序动态链接到的共享库的网络访问?

最佳答案

你在标题中的要求是不可能的,但你可以为插件网络访问创建一个 API,它在每个插件基础上具有阻止功能。这意味着您不会直接使用 Qt 的网络类,而是围绕它们创建包装器,以检查该特定插件是否具有权限,如果没有,则在发出网络命令时什么都不做。这也意味着您必须向可能为您的应用程序编写插件的人提供该 API,并禁止他们直接使用 Qt 的网络类,而是使用您的包装器。

关于c++ - 是否可以阻止共享/动态库的网络访问?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27723278/

相关文章:

c++ - 方法不会重载

c++ - 为什么 __int128_t 在 x86-64 GCC 上比 long long 快?

c++ - 从多个表中读取数据的最佳方法

c++ - 如何将QImage格式转换为OpenGL支持的格式

python - QLineEdit 更改边框颜色而不更改边框样式

linux - 套接字选项在 Linux 中是本地的吗?

windows - 没有 ConnectEx 的 Windows 上的非阻塞套接字连接

c++ - 为什么 RegisterClass 因 ERROR_NOT_ENOUGH_MEMORY 而失败?

sockets - 如何与c++库websocket++建立安全套接字连接?

qt - 每个平台的默认文件位置?