Home > PHP > PHP HTTP認証

PHP HTTP認証

  • 2012-05-20 (Sun) 10:49
  • PHP
今日は、PHPにおけるHTTP認証の紹介をします。認証にはいくつかの種類があるようなのですが、ここでは最もポピュラーなベーシック認証を取り上げます。

通常、ユーザがホームページにアクセスした場合は、Webサーバはリクエストのページをそのままレスポンスして、ブラウザに表示される仕組みです。
認証とは、ある情報を持っている人でなければ、表示をしてくれない仕組みです。よくあるのが、会員だけ閲覧できるページ等です。
一般にユーザ名とパスワードを知っている人でなければ、そのページを閲覧できないので、いろんな意味でセキュリティを付けているという考え方です。

ベーシック認証は、ユーザ認証が必要なページにアクセスした時に「Authorization」ヘッダの有無を確認します。
PHPで確認するには、スーパーグローバル変数の「$_SERVER」の値をチェックします。この$_SERVER変数は、ヘッダ、パス、スクリプトの位置などの情報を有する配列変数です。
この配列の中の「PHP_AUTH_USER」に対応する値の有無を利用します。

$_SERVER変数のPHP_AUTH_USERの有無を調べるには次のように記述します。
if (!isset($_SERVER['PHP_AUTH_USER'])){
  // 認証のためのユーザ名がない時の処理
}

isset関数は、変数がセットされているかを確認するもので、頭に「!」を付けると「セットされていない」という判断になる。
ifステートメントを使って、処理を分岐しますが、もし、「Authorization」ヘッダがなければ、認証ダイアログをブラウザ上で表示させ、Webサーバからクライアントへ指示を出します。これには「header関数」を使って下のように記述します。
if (!isset($_SERVER['PHP_AUTH_USER'])){
 header('WWW-Authenticate:Basic realm="Private Page"');
 header('HTTP/1.0 401 Unauthorized');
}

「header関数」はHTTPヘッダをクライアントへ送信するための関数です。上のように記述すれば、クライアントのブラウザ上に認証画面を表示させるものだと考えてください。

認証画面が表示されたら、ユーザ名とパスワードを入力することになりますが、ユーザによってはキャンセルボタンを押すかもしれません。その時は、ページを見るには認証が必要であるというメッセージを表示させるようにします。
キャンセルしてプログラムを終了させ、メッセージを表示させるときは「die関数」を使います。
die('ページを表示するには認証が必要です。');


確認画面でユーザ名とパスワードを入力して、OKボタンを押したときの処理を考えます。この時、ユーザ名とパスワードの両方とも正しい入力がされている必要があります。どちらか片方でも間違えてしまうとページを表示させないようにするには、ifステートメントのelseの処理に以下のようなコードを記述します。
if($_SERVER['PHP_AUTH_USER'] !=$id || $_SERVER['PHP_AUTH_PW'] !=$pwd){
 header('WWW-Authenticate:Basic realm="Private Page"');
 header('HTTP/1.0 401 Unauthorized');
 die('正しい入力を行ってください。');
}

ここでは、ユーザ名、またはパスワードが一致しなければ、プログラムを終了してメッセージを表示させています。

では、これまでのコードを組み合わせたコードは以下のようになります。
<?php
 $id = "user";
 $pwd = "passOK";

 if(!isset($_SERVER['PHP_AUTH_USER'])){
  header('WWW-Authenticate:Basic realm="Private Page"');
  header('HTTP/1.0 401 Unauthorized');
  die('ページを表示するには認証が必要です。');
 }else{
  if($_SERVER['PHP_AUTH_USER'] !=$id || $_SERVER['PHP_AUTH_PW'] !=$pwd){
   header('WWW-Authenticate:Basic realm="Private Page"');
   header('HTTP/1.0 401 Unauthorized');
   die('正しい入力を行ってください。');
  }
 }
?>
<html>
 <head><title>ようこそ</title></head>
 <body>
 <p>こんにちは<?php echo $_SERVER['PHP_AUTH_USER']."さん";?>。ようこそ!</p>
 </body>
</html>

ブラウザにアクセスすると以下のように表示されます。
20120520-p01.jpg
もし、キャンセルボタンが押されると以下のようにブラウザ上に表示されます。
20120520-p02.jpg
ユーザ名とパスワードが正しく入力されるとページの内容が表示されます。
20120520-p04.jpg
もっともシンプルな認証ですが、これだけでも少しだけですがセキュリティを思わせるページになります。

ただし、ユーザ名とパスワードは他のファイルに記述するか、またはデータベース機能を使って認証する方法をお勧めします。

Comments:4

Oriegevoize 2013-11-22 (Fri) 19:52

The Fire Residence Tri-Fold American Finances has the ability to keep your hard earned dollars and after that some! <a href=http://www.homelessandhungry.org/>www.homelessandhungry.org</a>,<a href=http://www.kidsetoys.com/>http://www.kidsetoys.com/</a>,<a href=http://www.mujernovia.com/>レッドウィング ブーツ</a>,<a href=http://www.mitchellsdreviews.com/>クラークス アウトレット</a>,<a href=http://www.quizverse.com/>www.quizverse.com</a>,<a href=http://www.anteloperidgehomes.com/>オロビアンコ バッグ メンズ 新作</a>,<a href=http://www.sassywomeninspired.com/>www.sassywomeninspired.com</a>,<a href=http://www.reviewbusters.org/>http://www.reviewbusters.org/</a>,This particular small pocket book can certainly group a good deal; therefore don't let it has the sizing fool you actually! <a href=http://www.homelessandhungry.org/>www.homelessandhungry.org</a>,<a href=http://www.kidsetoys.com/>www.kidsetoys.com</a>,<a href=http://www.mujernovia.com/>www.mujernovia.com</a>,<a href=http://www.mitchellsdreviews.com/>クラークス ブーツ メンズ</a>,<a href=http://www.quizverse.com/>サマンサタバサ バッグ</a>,<a href=http://www.anteloperidgehomes.com/>オロビアンコアウトレット</a>,<a href=http://www.sassywomeninspired.com/>オニツカタイガー 店舗</a>,<a href=http://www.reviewbusters.org/>ヴィヴィアンウエストウッド 財布</a>,This kind of budget is made out of painting in addition to set that makes it sturdy and has now a really uncertain in addition to robust outside. ケイトスペード 財布 http://www.homelessandhungry.org/, トゥミ 財布 http://www.kidsetoys.com/, レッドウィング ポストマン http://www.mujernovia.com/, クラークス ワラビー, Certain http://www.mitchellsdreviews.com/, サマンサタバサ バッグ 新作 http://www.quizverse.com/, オロビアンコ 財布 http://www.anteloperidgehomes.com/, オニツカタイガー レディース http://www.sassywomeninspired.com/, ヴィヴィアンウエストウッド 財布 新作 http://www.reviewbusters.org/, this wallet will be able to hold up to the normal, just about all holds thirty tasks within your finances, including considerably more bank cards and also miscellaneous documents.

pedeelammep 2013-12-01 (Sun) 04:05

Typically the number-one concept throughout providing for any getaway is usually to packs lightly simply because we often forget about how frequently we'll have to elevate or even hold all of our suitcases in the course of the moves.MCM 財布 <a href=http://www.libertynewstv.org/>ケイトスペード 財布</a> ミュウミュウ バッグ,ヴィヴィアンウエストウッド バッグ 2013 <a href=http://www.degreesofemotion.com/>コーチ バッグ 人気</a> コーチ 財布 新作,アグ ムートンブーツ <a href=http://www.bestzeolite.com/>アグ ブーツ 正規品</a> アグ ダコタ, Look at how, you can pulling your own bags into your shoe of the automobile in addition to out and about once more, from the air-port, away from the suitcases slide carousel, through yet another air-port, around the trunk area within your rental car as well as out all over again till finally you are free to the motel where hopefully they are going to have a assister. ケイトスペード バッグ 新作 <a href=http://www.libertynewstv.org/>http://www.libertynewstv.org/</a> ミュウミュウ バッグ,ヴィヴィアンウエストウッド 財布 新作 グッチ バッグ アウトレット,コーチ バッグ 人気 <a href=http://www.degreesofemotion.com/>コーチ 財布 新作</a> コーチ 財布 新作,アグ ブーツ <a href=http://www.bestzeolite.com/>アグ ダコタ</a> アグ ムートンブーツ,In addition to needing to haul your own totes all-around, your own personal commercial airline may have strict regulations around the sizing, MCM 財布 http://www.libertynewstv.org/,コーチ バッグ www.degreesofemotion.com,アグ ブーツ 激安 http://www.bestzeolite.com/,bodyweight and the number of hand bags you may vacation with-for equally luggage as well as checked luggage.

muridrulk 2013-12-12 (Thu) 11:09

At some point Street. Nicholas, also called Saint Nicholas connected with Myra, seemed to be strolling by way of community and overheard the particular townspeople talking about the particular mans problem with his 3 little ones.ドクターマーチン ブーツ <a href=http://www.cemfootball.com/>ドクターマーチン 8ホール</a> ドクターマーチン レディース,ケイトスペード 財布 <a href=http://www.kytary.info/>ケイトスペード 財布</a> ケイトスペード バッグ 新作,tumi アウトレット <a href=http://www.unitedsim.net/>トゥミ バッグ 2013</a> トゥミ バッグ 2013,サマンサタバサ 財布 新作 2013 <a href=http://www.birthingyourwaytoday.com/>サマンサタバサ 財布 新作 2013</a> サマンサタバサ バッグ 人気,Nicholas needed to help yet this individual realized the person would not voluntarily acknowledge dollars from him. Thus they continued to wait until it seemed to be dark and traveled to often the mans household in addition to fallen 3 luggage regarding platinum down the chimney, ドクターマーチン ブーツ <a href=http://www.cemfootball.com/>ドクターマーチン ブーツ</a> ドクターマーチン 8ホール,ケイトスペード 財布 新作 2013 <a href=http://www.kytary.info/>ケイトスペード 財布</a> ケイトスペード アウトレット,トゥミアウトレット <a href=http://www.unitedsim.net/>トゥミ バッグ</a> トゥミ 財布,サマンサタバサ バッグ 新作 <a href=http://www.birthingyourwaytoday.com/>サマンサタバサ アウトレット</a> サマンサタバサ 財布 新作 2013,a single for every single lady. It really consequently occured that this young ladies experienced cleansed their own clothes which morning only to have hung their own hose through the open fireplace to be dried. When Saint.

wlp 2015-06-29 (Mon) 18:14

http://www.guccihandbags.com.co/
http://www.gucci-outlet.in.net/
http://www.gucci--outlet.com.co/
http://www.guccishoes.net.co/
http://www.guccishoes.us.org/
http://www.hermesbags.com.co/
http://www.hermesbirkin.com.co/
http://www.hermesoutlet.net.co/
http://www.hollister.us.org/
http://www.hollisterclothing-store.in.net/
http://www.insanityworkout.net.co/
http://www.iphone-cases.us/
http://www.ralphlaurenpolo.in.net/
http://www.ray-ban-outlet.us.com/
http://www.raybans.us.org/
http://www.rayban-sunglasses.org.uk/
http://www.rayban-sunglasses.us.org/
http://www.raybansunglassesoutlet.net.co/
http://www.raybanwayfarer.in.net/
http://www.replicahandbags.com.co/
http://www.replicawatches.us.com/
http://www.retro-jordans.com/
http://www.rolex-watches.me.uk/
http://www.rosherun.org.uk/
http://www.rosheruns.us/
http://www.salvatoreferragamo.in.net/
http://www.soccer-shoes.org/
http://www.softball-bats.us/
http://www.suprashoe.net/
http://www.swarovskicrystal.com.co/
http://www.swarovskijewelry.com.co/
http://www.swarovski-uk.org.uk/
http://www.the-northface.com.co/
http://www.the-northface.in.net/
http://www.thenorth-face.org.uk/
http://www.thenorthface.us.org/
http://www.thenorthfacejackets.in.net/
http://www.thomassabo-uk.org.uk/
http://www.tiffanyandco.net.co/
http://www.tiffanyjewelry.us.org/
http://www.tory-burch-outlet.in.net/
http://www.tory-burchoutlet.us.com/
http://www.louboutin.jp.net/
http://www.louis-vuittoncanada.ca/
http://www.louisvuitton.jp.net/
http://www.louis--vuitton.org.uk/
http://www.louisvuitton.so/
http://www.louisvuittonas.com/
http://www.edhardy.in.net/
http://www.levisjeans.com.co/
http://www.bcbgdresses.net/
http://www.bebeclothing.net/
http://www.harrods-london.co.uk/
http://www.guccishoes.com.co/
http://www.ralphlaurenoutletonline.us.org/
http://www.true-religion.com.co/
http://www.truereligionjeans.net.co/
http://www.truereligion-outlet.com.co/
http://www.uggaustralia.net.co/
http://www.uggboots.net.co/
http://www.uggbootsclearance.com.co/
http://www.uggsonsale.com.co/
http://www.uggsoutlet.com.co/
http://www.uptocoachoutlet.com/
http://www.vansshoes.us/
http://www.weddingdressesuk.org.uk/
http://www.yogapants.com.co/
http://www.ugg-boots.us.org/
http://www.poloralphlaurenoutlet.net.co/
http://www.burberryoutletonline.ar.com/
http://www.toms-outlet.net.co/
http://www.michaelkors.in.net/
http://www.christianlouboutinoutlet.net.co/
http://www.toryburchsale.com.co/
http://www.pradaoutlet.com.co/
http://www.longchamp-handbags.in.net/
http://www.longchampoutlet.com.co/
http://www.chanel-bags.com.co/
http://www.truereligion-outlet.us.org/
http://www.abercrombie-and-fitch.us.com/
http://www.timberlandboots-outlet.net/
http://www.timberland-shoes.com/
http://www.tommyhilfiger.net.co/
http://www.tommy-hilfigeroutlet.com/
http://www.tomshoesoutlet.com/
http://www.toms-outlet.in.net/
http://www.toms-shoes.com.co/
http://www.hollisterclothing.in.net/
http://www.newbalance-shoes.org/
http://www.converse--shoes.net/
http://www.lululemonoutlet.com.co/
http://www.nfl-jerseys.in.net/
http://www.cheapjerseys.us.org/
http://www.rolex-watches.us.com/
http://www.rolexwatchesforsale.us.com/
http://www.p90xworkout.in.net/
http://www.giuseppezanotti.com.co/
http://www.maccosmetics.net.co/
http://www.instyler.in.net/
http://www.mizunorunning.net/
http://www.handbagsoutlet.com.co/
http://www.hilfigeroutlet.in.net/
http://www.kate-spade.com.co/
http://www.katespade-outlet.com.co/
http://www.kate-spades.com/
http://www.longchamp.us.org/
http://www.longchamp.com.co/

Comment Form
★下記に2つの英単語をスペースで区切って入力してください

Home > PHP > PHP HTTP認証

Search
Feeds

Page Top