.netrc ファイルを使用した CURL 要求

.netrc ファイルを使用した CURL 要求

資格情報を.netrcファイルに保存し、そのファイルを読み取ってカールコマンドに渡し、後で使用するために返されたCookieファイルを保存するスクリプトを作成しようとしています。私が興味を持っているのは、これがユーザー名とパスワードを安全に渡す方法であるか、中間者攻撃がある場合、私がアクセスしようとしているサーバーがHTTP経由でアクセスされる場合、彼らはどうなりますか?資格情報をスニッフィングできます。

#!/bin/bash

IP="192.168.0.1"
user="Administrator"
pass="Password1234"

function credentials {
    mkdir "${HOME}"/.netrc
    rm "${HOME}"/.netrc/credentials.txt
    touch "${HOME}"/.netrc/credentials.txt
    { echo "machine ${IP}"; echo "login ${user}"; echo "password ${pass}"; } >> "${HOME}"/.netrc/credentials.txt
    chmod 600 "${HOME}"/.netrc/credentials.txt
}

function cookie {
    curl -v -c cookie.txt -n "${HOME}"/.netrc/credentials.txt http://"${IP}"/setup.php
}

credentials
cookie

資格情報.txtファイルがそのディレクトリに正しく保存されており、資格情報に正しい権限があることを確認しましたが、Cookie機能を実行しようとすると、次のエラーが発生しますCouldn't find host 192.168.0.1 in the .netrc file; using defaults。 Curlが資格情報.txtファイルで設定されたユーザー名とパスワードを取得できないのはなぜですか?

ベストアンサー1

私が理解しているように、(curlの)マニュアルページでは、このオプションを使用するとファイルを見つけるだけで、ファイルへの-nファイル.netrcパスは必要ありません。これがオプションです--netrc-file。マニュアルページから:

--netrc-file
   This option is similar to --netrc, except that you provide the 
   path (absolute or relative) to the netrc file that Curl should use. 
   You can  only  specify one netrc file per invocation. If several 
   --netrc-file options are provided, only the last one will be used.       
   (Added in 7.21.5)

   This option overrides any use of --netrc as they are mutually 
   exclusive.  It will also abide by --netrc-optional if specified.

おすすめ記事