Python/Django - 避免在源代码中保存密码

2024-04-01

我使用 Python 和 Django 创建 Web 应用程序,并将其存储在源代码管理中。按照 Django 通常的设置方式,密码在 settings.py 文件中以纯文本形式显示。

以纯文本形式存储我的密码会给我带来许多安全问题,特别是因为这是一个开源项目,我的源代码将受到版本控制(通过 git,在 Github 上,让全世界都可以看到!)

问题是,在 Django/Python 开发环境中安全编写 settings.py 文件的最佳实践是什么?


虽然我在 stackoverflow 上找不到任何特定于 Python 的内容,但我确实找到了一个很有帮助的网站 http://opensourcehacker.com/2012/12/13/configuring-your-python-application-using-environment-variables/,并认为我会与社区其他人分享解决方案。

解决办法:环境变量。

注意:虽然 Linux/Unix/OS X 和 Windows 世界中的环境变量相似,但我尚未在 Windows 计算机上测试此代码。请告诉我是否有效。

在 bash/sh shell 中,输入:

export MYAPP_DB_USER='myapp'
export MYAPP_DB_PASSWORD='testing123'

在你的 Django settings.py 文件中:

DATABASE_USER = os.environ.get("MYAPP_DB_USER", '')
DATABASE_PASSWORD = os.environ.get("MYAPP_DB_PASSWORD", '')

在这种情况下,如果环境变量不存在,则用户名和密码将默认为空字符串。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python/Django - 避免在源代码中保存密码 的相关文章

随机推荐

  • 没有这样的模块 JSQMessagesViewController

    我正在尝试导入 JSQMessagesViewController import JSQMessagesViewController 它给了我错误 没有这样的模块 我在网上看到很多人遇到这个问题 但我找不到解决方案 这是我的 Podfile
  • 如何从颜色推断形状的状态

    我已经形成了乐高立方体4x4形状 我试图推断图像内区域的状态 空 满以及颜色是黄色还是蓝色 为了简化我的工作 我添加了红色标记定义border由于相机有时会晃动 因此形状会受到影响 这是我试图检测的形状的清晰图像 由手机摄像头拍摄 编辑 请
  • Phonegap - 在启用自动方向的同时防止旋转?

    我正在重新发布我在 Google 群组中找到的其他人的问题 我也遇到了类似的问题 我有一个应用程序 要求所有内容都处于纵向 除了播放视频时 在 iOS 上 当视频播放传递到 Quicktime 播放器时 我希望视频能够以横向模式播放 目前
  • 获取正确的月份格式日期java

    有什么帮助吗 如何从 2014 01 10T09 41 16 000 0000 这样的字符串中获取正确的日期 我的代码是 String strDate 2014 01 10T09 41 16 000 0000 String day Stri
  • 有人可以澄清一下 Joel On Software 引用的意思吗:(功能性程序没有副作用)

    我正在读书乔尔安软件 http www joelonsoftware com 今天又遇到了这个报价 http www joelonsoftware com articles ThePerilsofJavaSchools html 不了解功能
  • BigQuery JDBC 驱动程序返回的行数不会超过 100,000 行

    我在 Pentaho PDI 中使用 Google BigQuery 的 starschema JDBC 驱动程序 http code google com p starschema bigquery jdbc http code goog
  • AWS Lambda:Lambda 函数 S3 到 S3 复制的跨账户策略

    我们正在尝试实现 lambda 函数 该函数将根据源 S3 存储桶事件将对象从一个 S3 复制到跨账户中的另一个 S3 存储桶 目前 我们能够在同一 SAG 内的源和目标之间复制文件 但是当我们尝试跨账户实现相同的逻辑时 得到了 CopyO
  • windows下Qt应用程序和窗口图标

    我通过嵌入包含图标的标准 Windows 资源文件创建了一个简单的应用程序图标 不过 我还想在我的主应用程序窗口上使用此图标 是否有捷径可寻 到目前为止 似乎唯一的方法是单独加载包含窗口图标的图标 而不是重用已经存在的图标 这似乎是一个可怕
  • 更改 foreach 循环内的初始数组?

    我想要一个 foreach 循环 其中初始数组在循环内更改 eg array array red blue foreach array as key gt value array white echo value br 在此循环中 尽管我在
  • iOS Google 静默登录提供了缺少个人资料信息的(有效)令牌

    我已将 Google SignIn SDK v4 0 1 集成到我的 iOS 应用程序中 正常的身份验证过程通过以下方式正常工作 GIDSignIn sharedInstance signIn 检索到的 idToken 有效 包含电子邮件和
  • 如何使用 .Net 处理程序处理 .asp 扩展名?

    我有一个旧的经典 ASP 网站 我正在将其迁移到 IIS7 5 我不想在服务器上安装经典 ASP 因此我只想将 asp 文件视为 aspx 文件 我该如何在 IIS7 5 中执行此操作 编辑 澄清一下 我并不是在问如何让经典的 ASP 代码
  • Highstock日期输入jquery ui datepicker位置变化

    在 Highstock 中 您可以使用 jquery ui datepicker 而不是在日期字段中输入文本 如本演示所示 http jsfiddle net hcharge aNde9 http jsfiddle net hcharge
  • 在 Chrome 中播放多种声音

    我正在为 Facebook 开发 HTML5 游戏 我有以下 HTML 代码
  • 如何让小圆圈的边框变得平滑?

    有没有办法让纯 CSS 圆形边框在较小尺寸下看起来清晰明快 或者有什么方法可以使边框在外边缘周围不出现 锯齿状 非常感谢 Use box shadow针对此问题的 CSS 属性 请看下一个例子 http jsfiddle net RJMWR
  • GCC最高指令集,兼容多种架构

    我正在由具有不同架构的机器组成的集群上运行作业 gcc march native Q help target grep march cut f3给了我其中之一 broadwell haswell ivybridge sandybridge
  • 你能建议一个好的 minhash 实现吗?

    我正在尝试寻找一个可以在我的工作中利用的 minhash 开源实现 我需要的功能非常简单 给定一个集合作为输入 实现应该返回其 minhash 首选 python 或 C 实现 以防万一我需要破解它才能为我工作 任何指示都会有很大帮助 Re
  • 如何在 C# 注册表类中使用 REG_OPTION_OPEN_LINK

    我想打开一个符号链接的注册表项 据微软称 https learn microsoft com en us windows win32 api winreg nf winreg regopenkeyexw parameters我需要使用REG
  • 使用 NSDocument 时如何将故事板视图绑定到核心数据实体?

    我正在构建一个使用核心数据 NSDocument 故事板和 Cocoa 绑定的 OS X 应用程序 我的期望是发生以下情况 一个实例MyDocument NSDocument子类 被创建 MyDocument创建核心数据NSManagedO
  • Google Play -505 安装错误

    我在 Google Play 中有一个应用程序 它是使用工具和 API 22 构建的 一切运行良好 但上次使用 API 23 工具 23 1 的更新向用户显示编号为 505 的 Android 6 0 错误 在 Google Play 应用
  • Python/Django - 避免在源代码中保存密码

    我使用 Python 和 Django 创建 Web 应用程序 并将其存储在源代码管理中 按照 Django 通常的设置方式 密码在 settings py 文件中以纯文本形式显示 以纯文本形式存储我的密码会给我带来许多安全问题 特别是因为