ænd*_*rük 13 security scripts authentication automation password
我有一个 Bash 脚本,它使用我的用户名和密码自动对服务进行身份验证。凭据当前以纯文本形式存储在脚本中。
我应该采取什么预防措施来最安全地存储这些凭据,同时仍然允许脚本访问?
澄清要点:
Rin*_*ind 14
不要在文件中硬编码密码,而是将密码存储在单独的文件中并保护文件(chmod 700
或chmod 500
),以便只有授权用户才能访问它。
检索密码cat /dir/to/file/with/.password
而不是读取文件并将其内容存储到变量中。
什么样的服务?某些服务有其他验证方法,例如用于 SSH 的 SSH 密钥与 SSH 代理。
我会将密码与脚本分开存储,并确保所有路径组件都设置了正确的权限。例如,确保路径/path/to/file
中的/
、/path
和/path/to
由您信任的用户 ( root
)拥有,并且这些不能被不允许查看您的文件的人写入。最后,推荐的权限file
是 600 或 400。
这file
看起来是这样的:
PASSWORD='something that you cannot remember'
Run Code Online (Sandbox Code Playgroud)
在您的脚本中,使用以下代码导入变量:
. /path/to/file
Run Code Online (Sandbox Code Playgroud)
至于您的脚本,请确保它不包含可能允许攻击者在脚本上下文中执行代码的漏洞(例如,可能具有任意$PATH
变量集的不受控制的环境或其他文件的无效使用(例如,获取世界可写文件) .
至于密码的实际保护,你不能。它必须以某种方式对其他服务可用。作为替代方案,您可以加密包含密码的文件/脚本,openssl
或者gpg
您需要在解锁凭据之前输入密码。如果您的服务密码难以记住,这将特别有用。
归档时间: |
|
查看次数: |
9394 次 |
最近记录: |