【问题标题】:Can cURL use stored auth details with DIGEST auth?cURL 可以将存储的身份验证详细信息与 DIGEST 身份验证一起使用吗?
【发布时间】:2014-05-10 03:52:02
【问题描述】:

我有几个跨服务器的 PHP 脚本,这些脚本具有 DIGEST 身份验证设置以提供基本保护。这些脚本由每个系统上的 cron 执行,如下所示:

/usr/bin/curl -s --digest -u "user:password" "http://path/to/script

在我目前的设置中,如果我碰巧更改了用户名/密码组合,我将不得不手动编辑所有 crons 以更新密码。

有没有一种方法可以将身份验证详细信息(无论如何密码都是哈希)存储在可以传递给 cURL 的文本文件中?有点像..

/usr/bin/curl -<some option> /var/auth.txt

【问题讨论】:

    标签: php authentication curl cron


    【解决方案1】:

    使用-d @filename 是在POST 调用中包含文件的方法,但我怀疑它不适用于-u

    最好的选择是使用 .curlrc,一个独立的 curl 配置文件,或者通过标准输入传递配置文件。

    编辑:短版:在 cURL 请求中添加 -K <config file path> 参数并将 -u "user:password" 移动到此文件的第一行。


    来自 curl http://curl.haxx.se/docs/manpage.html 的手册页

    -K, --config <config file>
    

    指定从哪个配置文件读取 curl 参数。配置文件是一个文本文件,可以在其中写入命令行参数,然后将其用作实际命令行。

    选项及其参数必须在同一配置文件行中指定,以空格、冒号或等号分隔。可以选择在配置文件中给出长选项名称,而不需要初始双破折号,如果是这样,冒号或等号字符可以用作分隔符。如果选项指定有一个或两个破折号,则选项与其参数之间不能有冒号或等号。

    如果参数要包含空格,则参数必须用引号引起来。在双引号内,可以使用以下转义序列:\、\"、\t、\n、\r 和 \v。忽略任何其他字母前面的反斜杠。如果配置行的第一列是“#”字符,该行的其余部分将被视为注释。在配置文件中每物理行只写一个选项。

    将文件名指定为 -K,--config 为 '-' 以使 curl 从标准输入读取文件。

    请注意,为了能够在配置文件中指定 URL,您需要使用 --url 选项指定它,而不是简单地将 URL 写在单独的行上。所以,它可能看起来像这样:

    url = "http://curl.haxx.se/docs/"

    当 curl 被调用时,它总是(除非使用 -q)检查一个默认的配置文件,如果找到就使用它。默认配置文件按此顺序在以下位置进行检查:

    1) curl 尝试查找“主目录”:它首先检查 CURL_HOME,然后检查 HOME 环境变量。如果做不到这一点,它会在类 UNIX 系统上使用 getpwuid() (它返回给定系统中当前用户的主目录)。在 Windows 上,它会检查 APPDATA 变量,或者作为最后的手段检查 '%USERPROFILE%\Application Data'。

    2) 在 Windows 上,如果主目录中没有 _curlrc 文件,它会在放置 curl 可执行文件的同一目录中查找文件。在类 UNIX 系统上,它只会尝试从确定的主目录加载 .curlrc。

    # --- Example file ---
    #this  is a comment
     url = "curl.haxx.se"
     output = "curlhere.html"
     user-agent = "superagent/1.0"
    
    # and fetch another URL too
     url = "curl.haxx.se/docs/manpage.html"
     -O
     referer = "http://nowhereatall.com/"
    #- -- End of example file ---
    

    此选项可以多次使用以加载多个配置文件。

    【讨论】:

    • 总结答案,在cURL请求中添加-K &lt;config file path&gt;参数,并将-u "user:password"移动到该文件的第一行。
    • @Reddox 所说的。 :-) 会添加它,所以它更有用。
    猜你喜欢
    • 2011-02-05
    • 2020-09-11
    • 1970-01-01
    • 2011-05-23
    • 1970-01-01
    • 2019-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多