cakePHP1.2でBASIC認証を使いたい。BASIC認証とは会員性のホームページなどにあるログインダイアログが表示されて正しいパスワードを入力しないと先へ進めないもの。普通はApacheのhtacessとhtpasswordを使わなければならないものが、以下のように簡単にできます。 Securityコンポーネントを使います。コードを読みながらなので自己責任でお願いします。 データベースとログインフォームを使った認証ならAuthコンポーネントを使いましょう。 var $components = array('Security'); $users = array('(ユーザー名)'=>'(パスワード)'); $this->Security->requireLogin('add','edit','delete'); //使いたいアクション $this->Securi
スパイスラボ神部です。 ちょっと前から悩んでいたのですが、CakePHP でサイト開発をするとき、Basic 認証はどうすればいいのか…という問題があります。CakePHP の Routing と、Apache のディレクトリ構造とは一対一対応ではないため、たとえば特定のコントローラ以下にのみ認証をかけたい場合などは、どこにどうやって .htaceess を置けばいいのか、と言うことに悩んでしまいます。 そこで CakePHP のフォーラムに相談してみたところ、解決方法があまりにも簡単でスマートなことに驚いてしまいました。 -Apacheが好きだ! - Favorites! Security コンポーネントと beforFilter の活用 解決方法で提示されていたのが、こちらのブログエントリ。 -CakePHPでBasic認証対応ページを作る - blog.katsuma.tv こちら
1.2だとBasic認証対応ページを作るのも超簡単です。 対応させたいControllerにSecurityコンポーネントを適用 まずSecurityコンポーネントを利用します。 class HogeController extends AppController { var $name = 'Hoge'; var $uses = array('Hoge'); var $components = array('Security'); ... } 認証情報を追加 beforeFilterに認証に必要な情報を追加します。 function beforeFilter(){ parent :: beforeFilter(); $this->Security->loginOptions = array('type'=>'basic'); $this->Security->loginUsers = a
CakePHP 1.2 RC3を利用しています。 Securityコンポーネントを使うと、Admin用コントローラやアクションのみにBASIC認証をかけるとかできて、色々と便利です。 その他にも、コンポーネントとして読み込むだけでフォームにトークンを埋め込んで、埋め込んだトークンがPOSTデータに含まれていないとエラーとして扱ってくれるなど、自然にCSRF対策が出来て便利です。 ただし、Viewファイルの中で、Cakeのformヘルパーを使ってフォームタグとフォームを閉じるタグを出力しないと、トークンを自動で埋め込んでくれないのでPOSTデータはすべてエラー扱いにされてしまいます。 最初、フォームを閉じる場合に、htmlのフォームタグを使って</form>としていてエラーになりはまりました。 フォームは下記のように <?php echo $form->create('Admin', arr
Cakephp1.2.6 追記(2010/12/16) この方法は抜け道があることが判明しました。詳細は下記をご覧ください。 http://wp.serpere.info/archives/1883 私の場合の対応方法として、members/.htaccessに下記の1行を追加し、 SetEnv MEMBER_CHECK_FLAG ok Membersコントローラ側でその環境変数がセットされているかチェックし、されていなければエラーとする対応でいけると思います。 環境変数はcake側で下記のようにして取得可能です。 $flg = env('MEMBER_CHECK_FLAG'); 追記(2010/12/16)ここまで 別にCakephp以外でも同じようにmod_rewriteでindex.phpとかを呼び出してるようなフレームワークならこの方法はいけると思います。 Basic認証はCake
.htaccess活用法(1) .htaccess(拡張子がhtaccessということで、ドットが必要です。ファイル名がないので最初戸惑いますが、こういうものだと思ってください。)が利用可能だと、 アクセス制限(Basic認証)が可能。 特定のホスト(IPアドレス。プロバイダ)からのアクセスを制限することが可能 参照元(Referer)によるアクセス制限が可能(画像の直リンク禁止も可能) 特定のユーザーエージェント(ブラウザ・ロボット)からのアクセス制限が可能 ブラウザ経由でのアクセス(http://~)を拒否することも可能(大切なデータファイルを守る) リダイレクトが可能(ページの移転時などに重宝) 404 File Not Foundページのカスタマイズが可能。 拡張子別に文字コードを設定することが可能。(文字化け対策に必須の場合があります。) index.cgiやindex.phpを
ホームページを作る上で、特定の人にだけ見せたいページが出てくるでしょう。 そのようなページでユーザー名とパスワードを入力させる認証ダイアログがポップアップ表示するところを見たことがあると思います。 これを Basic 認証 と呼びます。 ここでは、Basic 認証の仕組みや特徴、.htaccess と .htpasswd の書き方、 そして、.htpasswd に記述するハッシュ化パスワードの生成方法について解説します。 Basic 認証のダイアログ Basic 認証の認証ダイアログは、ブラウザーによって見た目が異なります。 実際に、お使いのブラウザーではどのような画面が出るのかをお試しください。 Basic 認証を試す Basic 認証の特徴 Basic 認証は、認証の仕組みとしては非常にシンプルなため、手軽に用意できるメリットがある反面、 いくつかのセキュリティ上のデメリットもあります
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く