curl的基本授权命令

 我家在波力牧场 发布于 2023-02-07 19:43

如何使用64位编码凭据设置基本授权?我尝试了两个命令,但没有用,请建议.

curl -i -H 'Accept:application/json' Authorization:Basic  http://example.com
curl -i -H 'Accept:application/json' Authorization:Basic.base64_encode(username:password) http://example.com  

deltheil.. 46

如何设置基本授权?

您需要做的就是使用-u, --user USER[:PASSWORD].在幕后为您curl构建Authorization带有base64编码凭据的标头.

例:

curl -u username:password -i -H 'Accept:application/json' http://example.com


Sabuj Hassan.. 28

-H在授权:基本事物之前再次使用标题.所以它会

curl -i \
    -H 'Accept:application/json' \
    -H 'Authorization:Basic username:password' \
    http://example.com

除了"用户名:密码"必须是base64编码而不是如此处所示的普通... (26认同)


Arpit Aggarw.. 13

一种方式,提供--user标志作为其中一部分curl,如下:

curl --user username:password http://example.com

另一种方法是从任何在线网站获取"用户名:密码"的Base64编码令牌,如https://www.base64encode.org/,并将其作为标题传递如下:Authorizationcurl

curl -i -H 'Authorization:Basic dXNlcm5hbWU6cGFzc3dvcmQ=' http://localhost:8080/

这里dXNlcm5hbWU6cGFzc3dvcmQ=Base64编码的令牌username:password.

4 个回答
  • 如何设置基本授权?

    您需要做的就是使用-u, --user USER[:PASSWORD].在幕后为您curl构建Authorization带有base64编码凭据的标头.

    例:

    curl -u username:password -i -H 'Accept:application/json' http://example.com
    

    2023-02-07 19:46 回答
  • -H在授权:基本事物之前再次使用标题.所以它会

    curl -i \
        -H 'Accept:application/json' \
        -H 'Authorization:Basic username:password' \
        http://example.com
    

    2023-02-07 19:46 回答
  • 背景

    您可以使用base64CLI工具生成用户名+密码的base64编码版本,如下所示:

    $ echo -n "joeuser:secretpass" | base64
    am9ldXNlcjpzZWNyZXRwYXNz
    
    -or-
    
    $ base64 <<<"joeuser:secretpass"
    am9ldXNlcjpzZWNyZXRwYXNzCg==
    

    Base64是可逆的,因此您也可以将其解密以确认如下:

    $ echo -n "joeuser:secretpass" | base64 | base64 -D
    joeuser:secretpass
    
    -or-
    
    $ base64 <<<"joeuser:secretpass" | base64 -D
    joeuser:secretpass
    

    注意: 用户名= joeuser密码= secretpass

    示例#1-使用-H

    您可以curl像这样将它们放在一起:

    $ curl -H "Authorization: Basic $(base64 <<<"joeuser:secretpass")" http://example.com
    

    示例#2-使用-u

    大多数人可能会同意,如果您打算这样做,那么最好也使用curl-u选项。

    $ curl --help |grep -- "--user "
     -u, --user USER[:PASSWORD]  Server user and password
    

    例如:

    $ curl -u someuser:secretpass http://example.com
    

    但是,如果将凭据保存在加密的保险库服务(例如LastPass或Pass)中,则可以采用半安全的方式进行此操作。

    例如,这里我使用LastPass的CLI工具lpass来检索我的凭据:

    $ curl -u $(lpass show --username example.com):$(lpass show --password example.com) \
         http://example.com
    

    Example#3-使用curl配置

    还有一种更安全的方式将凭据传递给您curl。该方法利用了-K开关。

    $ curl -X GET -K \
        <(cat <<<"user = \"$(lpass show --username example.com):$(lpass show --password example.com)\"") \
        http://example.com
    

    使用时,您的详细信息保持隐藏状态,因为它们是通过curl临时文件描述符传递到的,例如:

    + curl -skK /dev/fd/63 -XGET -H 'Content-Type: application/json' https://es-data-01a.example.com:9200/_cat/health
    ++ cat
    +++ lpass show --username example.com
    +++ lpass show --password example.com
    1561075296 00:01:36 rdu-es-01 green 9 6 2171 1085 0 0 0 0 - 100.0%       
    

    注意:在上面,我正在与我们的Elasticsearch节点之一进行通信,询问集群的运行状况。

    此方法动态创建带有内容的文件,user = "<username>:<password>"并将其提供给curl

    HTTP基本授权

    上面显示的方法促进了称为“基本授权”的功能,该功能是HTTP标准的一部分。

    当用户代理想要将身份验证凭据发送到服务器时,它可以使用“授权”字段。

    授权字段的构造如下:

      用户名和密码用单个冒号(:)组合。这意味着用户名本身不能包含冒号。

      结果字符串被编码为八位字节序列。默认情况下,用于此编码的字符集是未指定的,只要它与US-ASCII兼容即可,但是服务器可以通过发送charset参数来建议使用UTF-8。

      结果字符串使用Base64的变体进行编码。

      然后将授权方法和一个空格(例如“ Basic”)添加到编码字符串中。

    例如,如果浏览器使用Aladdin作为用户名,使用OpenSesame作为密码,则该字段的值为Aladdin:OpenSesame或QWxhZGRpbjpPcGVuU2VzYW11l的base64编码。然后,授权标头将显示为:

    授权:基本QWxhZGRpbjpPcGVuU2VzYW1l

    来源:基本访问身份验证

    2023-02-07 19:46 回答
  • 一种方式,提供--user标志作为其中一部分curl,如下:

    curl --user username:password http://example.com
    

    另一种方法是从任何在线网站获取"用户名:密码"的Base64编码令牌,如https://www.base64encode.org/,并将其作为标题传递如下:Authorizationcurl

    curl -i -H 'Authorization:Basic dXNlcm5hbWU6cGFzc3dvcmQ=' http://localhost:8080/
    

    这里dXNlcm5hbWU6cGFzc3dvcmQ=Base64编码的令牌username:password.

    2023-02-07 19:49 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有