login.php と index.php の 2 つのページがあります。
localhost/mysite/login.php を書き込み、フォームにユーザー名とパスワードを書き込むと、CURLOPT_HTTPAUTH = CURLAUTH_DIGEST および CURLOPT_USERPWD = 'user:pass' を使用した cURL 要求が別のファイルに渡され、HTTP を使用してそれらの資格情報でユーザーを認証します。 DIGEST AUTH であり、成功した場合は 200 を返し、資格情報が間違っている場合は 401 を返します。
200 コードを取得すると、login.php は index.php にリダイレクトし、同じダイジェスト ファイルに対しても cURL 要求を行いますが、CURLOPT_HTTPAUTH または CURLOPT_USERPWD は使用しません。login.php で既にこれを行っているため、これらのダイジェスト資格情報はユーザーのブラウザーに保存する必要がありますが、そうではありません。そのため、index.php は再び資格情報を要求することになります。これが問題です。
CURLOPT_COOKIEFILE と CURLOPT_COOKIEJAR の使用を勧める人もいますが、それがどのように機能するのか誰も説明してくれません。CURLOPT_COOKIEFILE は Cookie 情報を取得するためのものであり、CURLOPT_COOKIEJAR はそれらを保存するためのものであることを理解しています。
したがって、質問は次のとおりです。
1) その Cookie ファイルのルート (例: '/tmp/cookies.txt')、それはどこですか? /tmp/cookies.txt とは正確には何ですか? login.php と同じレベルですか? またはC:/?また、事前にこのファイルを作成する必要がありますか? それとも自動的に作成されますか?
2) そのファイルはサーバー上にありますか、それともクライアントにありますか? サーバー上にある場合、どの Cookie がどのユーザーからのものかを知るにはどうすればよいですか。そうすれば、Y ユーザーが X ユーザー資格情報を使用してログインすることはありません。
3) また、これらの Cookie オプションを使用する場合、正確には何を保存していますか? 認証ページで、そのファイルに保存される Cookie を手動で作成する必要がありますか? もしそうなら、どのクッキーですか?Digest Auth Credentials を保持する必要があります。これは、nonce、cnonce、nc、username、response などを含むヘッダーであると思います...これが実際に回避方法であるかどうかはわかりません。
前もって感謝します