当前位置: 首页 > 面试题库 >

android build在jenkins上发布apk,而无需以纯文本格式存储我的密码

江飞章
2023-03-14
问题内容

我需要能够使用Jenkins作业构建我的apk的发行版。

我知道我可以通过以下两种方式之一来做到这一点。要么让用户在cmd提示符下输入密码,要么将我的密码详细信息存储在一个不会提交给git的纯文本文件中,并且位于我的本地计算机上。

但是,在jenkins上运行构建作业时,这些都不起作用。1)我无法获得用户输入,因为它可能在深夜运行(即使用户在他们的机器上,我什至都不知道如何从cmd线获取用户输入)2)任何可以获得对该构建框的访问权限,将能够通过cmd行或在该jenkins服务器上运行的另一个build.gradle作业来管理该文件的内容。

有谁知道我可以隐藏密码但让Jenkins作业可以访问它吗?

谢谢


问题答案:

您可以使用“掩码密码插件”来做到这一点。或EnvInject插件中包含相同的功能,并且所有Jenkins项目迟早都需要EnvInject插件(它可以做很多其他事情),因此不妨立即开始使用它。

在构建/构建后步骤中安全使用密码

  • 安装 EnvInject插件
  • 在“ Jenkins全局配置”下 ,找到“ 全局密码” 部分。
  • 添加一个 名称* (这将是环境变量名称)和 密码 (将加星号*)。
  • 在“ 作业配置”下 ,找到“ 构建环境” 部分。
  • 选中标记将 密码作为环境变量注入到构建中
  • 然后选中“ 全局密码”

现在,在任何构建步骤中,您都可以使用$name(如先前定义的那样)引用密码,就像您以纯文本形式键入密码一样。

  • 仅在作业执行时才注入password变量($name服务器的命令行上键入本身不会产生任何结果,并且像所有Jenkins变量一样,它不是持久性的)。
  • ****如果显示,则作业控制台日志将显示而不是密码。
  • 您可以为每个作业而不是全局配置密码,以便其他作业不能使用它。

唯一的安全问题是,如果某人具有 配置您的作业的管理权限 ,则他们可以写入echo $name > secretpassword.txt构建步骤,然后在工作区中查看文件。但是您应该小心,将管理权限分配给谁。



 类似资料:
  • 问题内容: 令我感到困扰的是,许多PHP程序要求用户将mysql密码以纯文本(字符串或常量)存储在应用程序根目录下的配置文件中。 这些年来,有没有更好的方法呢? 到目前为止,我提出了两个最小的安全性增强措施: 使用.htaccess中的规则通过网络使文件不可读(以防php失败或存在读取php源代码的安全漏洞) 在建立(未设置)数据库连接之后销毁内存中的密码(以防止由于安全漏洞,注入等导致的字符串转

  • 11:12:17,289信息[org.apache.Coyote.http11.http11protocol](MSC服务线程1-2)JBWeb003001:Coyote http/1.1正在初始化:http-/0.0.0.0:8080 11:12:17,297信息[org.apache.Coyote.http11.http11protocol](MSC服务线程1-2)JBWeb003000:Co

  • 问题内容: 根据问题,将密码存储在php页面上是否安全,例如 如果用户看不到它,那是安全的,对吗? 编辑:有人实际上建议使用哈希,但是,数据库服务器连接密码会出现问题,不是吗? 问题答案: 简短的答案是“否”,并且取决于情况。 这是几乎从来没有一个好主意,以纯文本格式存储密码,尤其是在网络访问的位置,如果 没有 其他原因,而不是一个简单的服务器配置不当或回波在错误的地方可以将其暴露给世界。 如果必

  • 我在debian linux机器上安装了mongodb服务器。现在,为了在允许远程登录之前保护它,我尝试添加一个管理用户,使用以下命令: db.adduser({user:“admin”,pwd:“my_password”,roles:[“useradminanydatabase”]}) 我一定是做了什么可怕的错误,因为我的密码最终在数据库中未加密,连同它的md5哈希版本。我尝试在运行命令之前使用

  • 问题内容: 我正在创建一个存储密码的应用程序,用户可以检索和查看该密码。密码用于硬件设备,因此无法检查哈希值。 我需要知道的是: 如何在PHP中加密和解密密码? 什么是最安全的密码加密算法? 我在哪里存储私钥? 除了存储私钥之外,要求用户在需要解密密码的任何时间都输入私钥是一个好主意吗?(可以信任此应用程序的用户) 密码可以通过什么方式被盗和解密?我需要注意什么? 问题答案: 就个人而言,我会像其