weblog

web制作(HTML/CSS/PHP/MySQL…)に関する内容を中心に書いていきます..。

 

phpを使ったbasic認証の設定方法(携帯も)

特定の人にだけ見せたい時に認証をかけるシーンは、
webの仕事をやってると結構ある事だと思います。

良くやるのは「.htaccess」と「.htpasswd」を使って、
ベーシック認証をかける方法。

調べてみたところ、phpでもbasic認証をかける事がが出来たのでメモ。

PCはもちろん、携帯電話3キャリア(Docomo,AU,Softbank)でも確認しましたが、
モバイルからのアクセスでも特に問題なく認証画面が出てきて動作しました。
(とはいっても、各1~2台でしかチェックしていませんので、参考まで。)

function basic_auth($auth_list,$realm="Restricted Area",$failed_text="認証に失敗しました"){
    if (isset($_SERVER['PHP_AUTH_USER']) and isset($auth_list[$_SERVER['PHP_AUTH_USER']])){
        if ($auth_list[$_SERVER['PHP_AUTH_USER']] == $_SERVER['PHP_AUTH_PW']){
            return $_SERVER['PHP_AUTH_USER'];
        }
    }
 
    header('WWW-Authenticate: Basic realm="'.$realm.'"');
    header('HTTP/1.0 401 Unauthorized');
    header('Content-type: text/html; charset='.mb_internal_encoding());
 
    die($failed_text);
}

//basic_auth ID&PASS
basic_auth(array("■yourID■" => "■yourPASS■"));

参考:PHPでお手軽ベーシック認証 (Basic認証) @ EC studio 技術ブログ

ベーシック認証よりもセキュアなダイジェスト認証を行う方法も
載っていたのでいたので、リンク掲載しておきます。

PHPでお手軽ダイジェスト認証 (Digest認証) @ EC studio 技術ブログ

※別ファイルで認証ファイルを作っておいて、
認証かけたいphpファイルにだけ頭でincludeさせてもいいかも。
(動作未確認)

Page URL

TrackBack URL

このページにコメントする

NAME

MAIL(管理人のみ確認)

URL

COMMENT