curl -s 'https://api.cloudflare.com/client/v4/zones/{zone_identifier}/logpush/jobs' \
-H "X-Auth-Email: [email protected]" \
-H "X-Auth-Key: abc123"
如果我运行这个,秘密字符串
abc123
会在三个地方泄露:
ps
输出我可以用
$(pass show cloudflare-api-key)
之类的东西替换硬编码密码,在这种情况下,密码只会在 ps
输出中泄漏。这仍然很糟糕,因为我机器上的非特权守护进程可能会窃取我的凭据。
有没有一种方便的方法以临时方式将凭据传递给命令行实用程序,这样凭据就不会泄露给
ps
?
Curl 可以从标准输入读取标志,因此假设您的密码不包含换行符:
pass show cloudflare-api-key \
| sed -ne '1{s/"/\\"/g' -e 's/.*/-H "X-Auth-Key: &"/p}' \
| curl -K- <other options>