【问题标题】:hardcoded password / credentials硬编码密码/凭据
【发布时间】:2019-06-19 07:40:18
【问题描述】:

我正在审查 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_password ; https://www.preemptive.com/blog/article/1059-create-more-secure-applications-don-t-hard-code-credentials-instead-use-application-hardening/106-risk-management.

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

谢谢

【问题讨论】:

标签: python security hardcoded


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-22
    • 2012-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-06
    相关资源
    最近更新 更多