首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TCP网络通信安全风险

TCP网络通信安全风险
EN

Stack Overflow用户
提问于 2013-08-14 13:23:11
回答 1查看 198关注 0票数 0

我正在开发一个应用程序,它可以使用QTcp*建立服务器-客户端连接。

客户端向服务器发送一个号码。

对接收到的字符串的长度和质量进行检查(它真的是一个数字吗?)

如果一切正常,那么服务器将返回一个文件路径(这取决于发送的编号)。

客户端检查该文件是否存在,以及它是否为有效图像。如果该文件符合规则,则在上执行一个命令。

这种类型的连接存在哪些安全问题?

该程序是为Linux系统设计的,外部命令上执行,图像文件使用QProcess执行。如果发送的字符串包含类似于(不要运行以下命令)的内容:

代码语言:javascript
复制
; rm -rf /

然后,它将在文件上被阻塞,没有找到安全检查(因为它不是文件路径)。如果没有对发送的字符串的有效性进行任何检查,那么将执行以下命令:

代码语言:javascript
复制
command_to_run_on_image ; rm -rf /

这会引起恐慌!但这是不可能的。

那么,我有什么要考虑的吗?

EN

回答 1

Stack Overflow用户

发布于 2013-08-14 21:13:07

如果您打开一个控制台并键入command ; rm -rf /*,可能会发生一些不好的事情。这是因为命令由shell处理。它解析文本输出,例如用;分隔符拆分命令,用空格拆分参数,然后使用system执行带有解析参数的解析命令。

然而,当您使用process->start("command", QStringList() << "; rm -rf /*");时,没有这样的危险。QProcess不会执行shell。它将直接使用system执行command。结果将类似于在shell中运行command "; rm -rf /*"

因此,您可以确保只执行您的命令,并将参数按原样传递给它。唯一的危险是攻击者有可能用他可以构造的任何文件路径调用命令。后果取决于命令所做的事情。

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

https://stackoverflow.com/questions/18232958

复制
相关文章

相似问题

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