Cordova Build.json 密码安全

Posted

技术标签:

【中文标题】Cordova Build.json 密码安全【英文标题】:Cordova Build.json password security 【发布时间】:2016-11-20 07:42:08 【问题描述】:

在构建和签署我的 apk 时,让 cordova 提示我输入 build.json 文件中的 storePassword 和密码字段的密码时遇到问题。我求助的解决方案是将它们输入到 build.json 文件中。

我的问题:在 build.json 中手动输入密码时是否存在任何安全问题(例如密码以某种方式包含在实际签名的 apk 中等)?

我的 cordova 项目的根目录中有 build.json,所以它会被自动检测到,我所要做的就是:

cordova build android --release

...这就是我走这条路的原因(它只是有效)。我知道这似乎是一个愚蠢的问题,但 Cordova 文档指出:

"对于发布签名,可以排除密码和构建系统 会提示输入密码。”

...这意味着出于某种原因不应将密码输入 build.json 以进行发布。

【问题讨论】:

这个问题重复了:***.com/questions/40349848/… 现在这似乎是一个错误,我在build.json 中包含密码的问题是在使用一些 VCS(例如 git)时。如果您的存储库遭到入侵...... 感谢您的链接。我没有问是否有错误,因为我知道它没有提示我输入密码。我想知道将密码放入 build.json 是否存在安全问题(即使只是在构建完成之前)。 【参考方案1】:

我认为主要原因是避免将密码以纯文本形式存储在build.json 中,而是在控制台中输入:


    "android": 
        "debug": 
            "keystore": "../android.keystore",
            "storePassword": "android",
            "alias": "mykey1",
            "password" : "password",
            "keystoreType": ""
        ,
        "release": 
            "keystore": "../android.keystore",
            "storePassword": "",
            "alias": "mykey2",
            "password" : "password",
            "keystoreType": ""
        
    

或从环境变量中获取:cordova run android --release -- --keystore=../my-release-key.keystore --storePassword=%STORE_PASS% --alias=mykey2 --password=password

【讨论】:

【参考方案2】:

密码以某种方式包含在实际签名的 apk 中

build.json 文件不会包含在构建的最终 apk 中。您可以通过解压缩 apk 以进行交叉检查来验证这一点。

希望对您有所帮助。

【讨论】:

以上是关于Cordova Build.json 密码安全的主要内容,如果未能解决你的问题,请参考以下文章

如何处理本机模式取消/错误事件(cordova-plugin-purchase)?

在 Cordova 应用程序中禁用文本选择输入

如何清除适用于 iOS 平台的 Cordova 应用程序的 localStorage

华为安全密码怎么关闭

密码学读书笔记系列:《商用密码应用与安全性评估》

古典密码和网络安全之间的关系