Vapor's crypto.json - 部署安全?



我在vapor中看到,这个crypto.json是使用vapor toolbelt创建的任何项目的一部分

{
"hash": {
"method": "sha256",
"key": "password"
},
"cipher": {
"method": "chacha20",
"key": "passwordpasswordpasswordpassword",
"iv": "password"
}
}

是否应该更新其中任何一个以进行部署?

是的,绝对不要使用默认密码或哈希密钥部署应用程序。对此有两种解决方案。

1:机密文件夹

您可以通过在secrets文件夹中提供crypto.json来轻松执行此操作。

Config/secrets/crypto.json

{
"hash": {
"method": "sha256",
"key": "<16 characters>"
},
"cipher": {
"method": "aes256",
"key": "<32 characters>"
}
}

默认情况下,Config/secrets文件夹位于.gitignore中,不应提交到版本控制。

2:配置中的环境变量

如果很难将Config/secrets/crypto.json文件添加到生产服务器,则可以改用环境变量。

Config/production/crypto.json

{
"hash": {
"method": "sha256",
"key": "$HASH_KEY"
},
"cipher": {
"method": "aes256",
"key": "$CIPHER_KEY"
}
}

此文件不包含密钥,可以安全地提交到版本控制。

只要确保你运行你的应用程序是--env=production(由于许多其他原因,包括性能,你应该已经在这样做了)

最新更新