-1

我正在审查 Python 代码的安全性。

为此,我使用了 Bandits(Python 的一个模块)和 DeepCode(www.deepcode.ai)等工具。Bandit 发现硬编码登录名和密码存在一些漏洞,而 DeepCode 没有发现漏洞。这是有问题的代码:

# Guest only login
# Used for Login as Guest button and login the current session as GUEST
APP_GUEST_USERNAME = "ppams.asguest"
APP_GUEST_PASSWORD = "ppams123456"

# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = '10-6d$q$&xxc9heb(hjeda$w%7pxC#+hhx%b0xl&_q(p8(u#uu'

我发现不应对凭据进行硬编码的文章。这里有一些文章:https ://qxf2.com/blog/dont-hardcode-usernames-and-passwords-in-your-test-scripts/ ;https://www.owasp.org/index.php/Use_of_hard-coded_pa​​sswordhttps://www.preemptive.com/blog/article/1059-create-more-secure-applications-don-t-hard-code-credentials-instead-use-application-hardening/106-risk-management

那么,使用硬编码凭证的风险是什么?你能给我看一些样品吗?如果凭证不能被硬编码,那么保护凭证的替代方法是什么?

谢谢

4

1 回答 1

0

有几件事需要考虑,首先,您将无法通过存储库公开您的项目,因为您的代码将可以清晰地访问。其次,如果您想与朋友共享您的代码而不必通过公共存储库,他们将可以访问您的 API 密钥或密码。第三,我们往往会忘记的一个常见危险是,如果您的计算机损坏并且该人遇到您的脚本/程序,他们也将具有访问权限。总而言之,如果您的脚本保留在与 Internet 断开连接的计算机上,因为它是安全的,这不是一个漏洞,但它仍然是一个不好的做法。另一方面,如果您的代码因任何原因被共享,就会变得危险。

Ps:另一种方法是创建一个 .ini 文件,例如,您将在其中存储所有敏感数据,但您不会公开共享。

于 2019-06-19T07:56:39.877 回答