如何解决如何清理 python 中的标准输入以修复 sonarqube 问题
<Navbar expand="lg">
<Container className={styles.top_menu_pad}>
<Navbar.Brand><Link href="/" passHref><a></a></Link></Navbar.Brand>
<Navbar.Toggle aria-controls="basic-navbar-nav" />
<Navbar.Collapse id="basic-navbar-nav">
<Nav className="ml-auto">
<NavDropdown title="Excel Courses" id="basic-nav-dropdown" style={{ position: "static" }}>
<ul>
<li Col sm={4}>ddddd</li>
<li Col sm={4}>ddddd</li>
<li Col sm={4}>ddddd</li>
</ul>
</NavDropdown>
<Link href="/worldwide-excel-training" passHref><Nav.Link>Upcoming Batches</Nav.Link></Link>
<Link href="/results" passHref><Nav.Link>Excel Exam Results</Nav.Link></Link>
<Nav.Link></Nav.Link>
</Nav>
</Navbar.Collapse>
</Container>
</Navbar>
当我在此代码上运行 sonarqube 时,我遇到了安全热点问题。
您可以查看更多与此问题相关的信息https://rules.sonarsource.com/python/RSPEC-4829
任何人都知道如何解决 sonarqube 的这个安全问题
我尝试过使用 cgi.escape()、bleach.clean() 和其他一些东西,但没有解决这个问题。
解决方法
首先,请注意您提供的链接中该规则已被弃用:
此规则已弃用,最终将被删除。
其次,我确信有一种方法可以关闭 sonarqube(这可能是规则被删除的原因,但我并不真正了解该工具),它实际上更像是一个警告信号,告诉您要小心但是检查器无法告诉您具体是什么问题,因为它完全取决于上下文:风险取决于您使用值的方式。
例如在这里,由于您正在回显输入,如果输出是元解释的,它可能触发问题,输入可能包含 control codes,这会影响它运行的 shell ,或者如果输出通过管道传输到其他可能也是漏洞的软件。但是,由于您正在检查一个实际上不可能发生的硬编码值。
所以我能看到的唯一可能的问题是输入太大而无法访问。由于这是一个 Python 程序,它应该[0]不会触发缓冲区溢出,但可能会导致程序崩溃,或强制框开始交换(取决于配置) ),导致拒绝服务条件。
无论如何,您总是可以尝试在输入上应用某种无操作正则表达式,但是...对我来说似乎很愚蠢,您基本上是在接受培训以解决该工具的愚蠢警告。
[0] 我猜 Python 运行时可能有自己的漏洞,但我们假设情况并非如此
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。