【问题标题】:Authentication within python scriptpython脚本中的身份验证
【发布时间】:2011-01-25 02:15:11
【问题描述】:

我正在编写一个主控制脚本来控制我们的基础架构。安全是一个主要问题,所以我想解决两个问题:

我希望用户能够执行应用程序,然后提示用户使用系统(Linux - Ubuntu)上的根凭据“登录”到程序。身份验证失败将触发电子邮件事件并锁定程序。我可以对 /etc/passwd 进行身份验证吗?以及如何锁定应用程序?

其次,如何保护应用程序不被修改?我可能必须将某些属性硬编码到应用程序中。执行但不编辑脚本的理想权限是什么?

【问题讨论】:

  • 也许您应该让脚本只能由超级用户执行?然后要求用户使用 sudo / su 执行脚本。
  • 至于您的第二次询问,python 并不是真正适合混淆的候选者。您可以只发送编译后的 .pyc 文件,这些文件更难更改。
  • 我应该提到的。该脚本将驻留在三个 C&C 服务器之一(命令和控制)。

标签: python authentication login


【解决方案1】:

虽然这是一个重要的解决方案,但最安全的方法是采用客户端/服务器方法,使您的主控制脚本成为系统服务,只能由 root 读取和运行。您可以通过init.d 启动基础设施启动服务。

当服务启动时,您需要打开一个套接字或 RPC 服务器来处理您的控制命令。在 Python 上,这可以使用 Twisted 轻松完成。

要通过/etc/passwd 进行身份验证,您可以使用crypt 和pwd Python 模块。

【讨论】:

  • 这是一个非常酷的建议。我将对此进行探索。这会阻止发现任何硬编码登录吗?
  • @Jeffrey 我建议您避免使用硬编码登录,因为它们可能会被暴力破解。此外,如果您的源代码被泄露,攻击者很容易获得凭据。内部 /etc/passwd 身份验证机制有一个身份验证令牌环,有助于缓解暴力攻击。
  • 当然。我只是举个例子,因为我实际上想在脚本中存储其他信息(非登录信息),而不用担心它会被任何有权访问脚本和文本编辑器的人阅读。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-04-06
  • 2012-08-25
  • 1970-01-01
  • 1970-01-01
  • 2012-01-25
  • 1970-01-01
  • 2015-01-31
相关资源
最近更新 更多