我正在开发一个可以使用 QTcp* 建立服务器-客户端连接的应用程序
客户端向服务器发送一个数字。
检查接收到的字符串的长度和质量(它真的是一个数字吗?)
如果一切正常,则服务器回复文件路径(取决于发送的编号)。
客户端检查文件是否存在以及它是否是有效的图像。如果文件符合规则,则对文件执行命令。
这种类型的连接存在哪些安全问题?
该程序是为 Linux 系统设计的,图像文件的外部命令是使用 QProcess 执行的。如果发送的字符串包含类似的内容(不要运行以下命令):
; rm -rf /
那么它将在未找到文件的安全检查中被阻止(因为它不是文件路径)。如果没有对发送的字符串的有效性进行任何检查,则将执行以下命令:
command_to_run_on_image ; rm -rf /
这会引起恐慌!但这不可能发生。
那么,有什么我应该考虑的吗?