gpt4 book ai didi

c++ - HP Fortify 分析结果,system() 命令注入(inject)

转载 作者:太空宇宙 更新时间:2023-11-04 10:52:46 26 4
gpt4 key购买 nike

我正在尝试编写在 linux 命令行中调用命令的 c++ 代码,我正在使用 HP Fortify 检查代码中的漏洞。熟悉 HP Fortify 源分析器的人可以告诉我是否可以在 c++ 代码中使用 system() linux 调用而不会收到 HP Fortify 的低威胁警告(低:命令注入(inject):语义)?如果我对 system() 函数的输入进行硬编码,同时在调用中写出程序和/或文件的完整路径,是否仍然存在命令注入(inject)的威胁?我不明白给它输入比硬编码更安全的方法。我是否应该忽略 system() 函数并找到另一种方法从我的 c++ 代码调用命令到 linux 命令行?

编辑:我尝试使用 execv() 而不是 system() 来调用程序,但它仍然给我使用 execv() 的命令注入(inject)警告。

最佳答案

一句话“不”。

HP Fortify 语义分析器可在过程内检测功能和 API 的潜在危险使用。基本上是一个聪明的 GREP。所以它本质上只是在你的代码中寻找单词“system()”和“execv()”。它将它们评为“低”,因为它没有发现攻击者可以影响 system() 将使用的字符串命令的路径。

但是,如果代码将用户输入串联在传递给 system() 的字符串中,则数据流分析器应将其视为关键命令注入(inject)。

将低语义发现视为“傻瓜安全”;-)

关于c++ - HP Fortify 分析结果,system() 命令注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30134098/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com