2016-11-20 119 views
0

我有问题让cordova在构建和签署我的apks时提示输入build.json文件中storePassword和password字段的密码。我转向的解决方案是将它们输入到build.json文件中。Cordova Build.json密码安全

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

我在科尔多瓦项目的根build.json所以它被自动检测,所有我需要做的就是:

cordova build android --release 

...这就是为什么我已经走了这条路线(它只是工作)。我知道,这似乎是一个愚蠢的问题,但科尔多瓦文档状态:

“对于发行的签名,密码可以被排除,构建系统 会发出提示,要求输入密码。”

...这意味着由于某些原因,密码不应该输入到build.json中进行发布。

+0

这个问题是重复的:http://stackoverflow.com/questions/40349848/cordova-6-4-0-android-error-when-building-release-apk 截至目前这似乎是一个错误,将密码包含在'build.json'中的问题是使用某些VCS(例如git)。如果您的存储库受到威胁.... –

+0

感谢您的链接。我并不是在问是否有错误,因为我知道它并没有提示我输入密码。我想知道在将密码放入build.json中是否存在安全问题(即使仅在构建完成之前)。 – Sam

回答

0

密码莫名其妙被包括在实际签署的apk

build.json文件将不会包含在被建立的最终APK。您可以通过解压apk来验证这一点,以便进行交叉检查。

希望有所帮助。

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