Help us understand the problem. What is going on with this article?

BASIC認証の越え方

ダイアログで入力する

一番、普通のやつ。
URLにブラウザでアクセスすると次のようなダイアログが表示される。
ダイアログのデザインはブラウザが異なると多少変わるが、ユーザ名パスワードが求められるのは共通。

image.png

正しいユーザ名パスワードを入力するとURLにアクセスできる。

cURLの場合

次のように-u オプションにユーザ名パスワード:(コロン)でつないで設定してBASIC認証を越える。

$ curl -u <ユーザ名>:<パスワード> https://www.example.com/login

URLに埋め込む

URLに次のようにユーザ名パスワードを埋め込んでしまうという方法もある。

https://<ユーザ名>:<パスワード>@www.example.com/login

ユーザ名パスワード@を含む場合にはURLエンコードすれば良い。

BASIC認証に特に対応する機能を持たないアプリケーションからBASIC認証の向こうにあるAPIなどにアクセスする場合などに便利。
ただし、アクセス先のURLをログなどに出力する仕様になっているとパスワードも出力されてしまうため注意が必要。

Authorizationヘッダで送る

プログラムからBASIC認証がかけられたURLにアクセスする場合にはAuthorizationヘッダーにユーザ名パスワードをセットしてリクエストする。

ユーザ名パスワード:(コロン)でつなぎ、BASE64でエンコードして、ヘッダ全体では次のようになるようにする。

Authorization: Basic <BASE64エンコードしたユーザ名:パスワード>

これで超えられる。

参考

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした