我在nginx中嵌入了一些Lua脚本。在其中一个脚本中,我连接到我的Redis缓存并按如下方式执行:
local redis_host = "127.0.0.1"
local redis_port = 6379
...
local ok, err = red:connect(redis_host, redis_port);
我不喜欢这个,因为,我必须硬编码主机和端口。我应该使用像.ini文件这样的东西,在Lua中解析它并从这个文件中获取配置信息吗?他们如何在现实世界的实践中解决这个问题?
此外,我的脚本我使用RSA解密和加密。例如,我现在这样做:
local public_key = [[ -----BEGIN PUBLIC KEY----- MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAL7udJ++o3T6lgbFwWfaD/9xUMEZMtbm GvbI35gEgzjrRcZs4X3Sikm7QboxMJMrfzjQxISPLtsy9+vhbITQNVkCAwEAAQ== -----END PUBLIC KEY----- ]]
...
local jwt_obj = jwt:verify(public_key, token)
我不喜欢这个,是我必须硬编码公钥。他们是这样在生产中使用它还是使用其他技术来存储秘密(比如将它们存储在环境变量中)?
答案 0 :(得分:0)
我确信某些人在生产中这样做。这完全取决于您所熟悉的内容以及您的标准。有些事情应该决定你的方法 -
要解决有关数据敏感性的第一项,您需要考虑许多不同的方案来确保保密的最佳方法。 AWS Parameter Store和CredStash等标准秘密存储就是为此目的而构建的,您需要在运行时提取秘密以将其加载到内存中。 对于第二项,您可以使用每个部署替换的配置文件。
为了充分利用这两个方面,您需要结合使用安全机制来存储机密和部署/更新的配置方法。
就像评论中提到的那样,有关于这两个主题的书籍,因此在SO答案中获得足够详细信息的可能性不大。