如何清理python中的标准输入以修复sonarqube问题


x = input("Enter name")
if x.lower() == "keshav":
print(x)

当我在这个代码上运行sonarqube时,我会遇到安全热点问题。

您可以查看与此问题相关的更多信息https://rules.sonarsource.com/python/RSPEC-4829

任何人都知道如何解决sonarqube 的安全问题

我尝试过使用cgi.escape((、漂白剂.clean((和其他一些东西,但没有解决这个问题。

首先,请注意,在您提供的链接中,该规则已被弃用:

此规则已被弃用,最终将被删除。

其次,我确信有一种方法可以关闭sonarqube(这可能是规则被删除的原因,但我真的不知道该工具(,它实际上更像是一个警告信号,告诉你要小心,但检查人员没有办法告诉你问题具体是什么,因为它完全依赖于上下文:风险取决于你使用价值的方式。

例如,在这里,由于您正在回显输入,如果输出是元解释的,则可能会触发问题,输入可能包含会影响其运行的shell的控制代码,或者如果输出通过管道传输到其他可能存在漏洞的软件。然而,由于您检查的是一个实际不可能发生的硬编码值。

因此,我能看到的唯一可能的问题是输入太大,无法访问。由于这是一个Python程序,它应该[0]不会触发缓冲区溢出,但它可能会使程序崩溃,或迫使盒子开始交换(取决于配置(,从而导致拒绝服务条件。

无论如何,您可以尝试在输入上应用某种无操作regex,但是。。。对我来说似乎很愚蠢,你基本上是在接受训练,绕过工具的愚蠢警告。

[0]我想Python运行时可能有自己的漏洞,但假设不是这样

相关内容

  • 没有找到相关文章

最新更新