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

2024-05-18 19:14:05 发布

您现在位置:Python中文网/ 问答频道 /正文

x = input("Enter name")

if x.lower() == "keshav":
    print(x)

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

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

有人知道如何解决sonarqube的安全问题吗

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


Tags: 代码namehttps信息inputiflowerrules
1条回答
网友
1楼 · 发布于 2024-05-18 19:14:05

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

This rule is deprecated, and will eventually be removed.

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

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

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

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

[0]我想Python运行时可能有自己的漏洞,但假设情况并非如此

相关问题 更多 >

    热门问题