我已经使用RESTHeart和HTTPie连接到我的MongoDB,下一行:
http PUT 127.0.0.1:8080/myfirstdb desc='this is my first db created with restheart' -a username:password
但我认为在命令中直接使用我的RESTHeart用户名和密码是不安全的。如果不在命令中键入我的REST用户名和密码,如何安全地发出此请求?
答案 0 :(得分:1)
再次引用RestHeart文档:
RESTHeart使用基本身份验证;每个请求都通过网络发送用户名和密码。 使用http侦听器并不安全:用户凭据可能被中间人攻击嗅探。
http://restheart.org/docs/configuration.html
基本身份验证(用户名:密码)似乎只支持身份验证模式。 RestHeart建议设置一个http s 监听器,这样就无法以纯文本方式嗅探您的密码。
答案 1 :(得分:1)
如果在命令中省略了密码,httpie将提示它。
http PUT 127.0.0.1:8080/myfirstdb desc='this is my first db created with restheart' -a username
如果成功通过身份验证,RESTHeart会返回一个auth-token,您可以将其用作进一步调用的临时密码(它有一个可以在配置文件中设置的生存时间)。
这是响应标头的示例:
Auth-Token: 6a81d622-5e24-4d9e-adc0-e3f7f2d93ac7
Auth-Token-Location: /_authtokens/user@si.com
Auth-Token-Valid-Until: 2015-04-16T13:28:10.749Z
所以你可以这样做(注意用作基本认证密码的auth-token):
http GET 127.0.0.1:8080/myfirstdb restheart' -a username:6a81d622-5e24-4d9e-adc0-e3f7f2d93ac7
另请注意,您应该在生产环境中使用https。
有关详细信息,请查看RESTHeart文档https://softinstigate.atlassian.net/wiki/x/W4CM
的安全性部分