file_get_contentsとBasic認証のお話

初の海外旅行に行くかもしれないYu-ichiです:neko: 

1ヶ月くらい休みを取って、フランスのモンサンミッシェルやボリビアのウユニ塩湖、
ポーランドのヴィエリチカ岩塩坑に行きたいですね。:nezumi: 

さて、今回はいろいろ便利な「file_get_contents」を使う際に、
参照先がBasic認証下にある場合のお話です。 

Basic認証がかかっているということは、参照に行くとIDとパスワードを要求されます。
ブラウザでアクセスした場合は、表示されたポップアップに正しいIDとパスワードを入力すれば、問題なくファイルを参照できますが、プログラムから呼びだす場合はひと手間必要です。 

仮に「/basic/read.php」というファイルを呼んでくる場合、通常なら・・・ 

 </p>
<p>&lt;?php<br />
file_get_contents(&quot;http://ドメイン/basic/read.php&quot;);<br />
?&gt; </p>
<p>

これで済みますが、「basic」ディレクトリにBasic認証をかけていた場合
このままでは401エラーが表示されてしまいます。
そこで、呼びだすURLにBasic認証で使用したIDとパスワードを追加します。 

 </p>
<p>&lt;?php<br />
file_get_contents(&quot;http://ID:パスワード@ドメイン/basic/read.php&quot;);<br />
?&gt; </p>
<p>

これで認証を通過して中にあるファイルを呼び出すことができます。 

ただ、なんらかのミスでphpが実行されずソースが閲覧可能な状態になってしまった場合は、
IDとパスワードが丸見えになってしまう
ので、取扱いには要注意です。

トラックバックURL