Home > CakePHP > [CakePHP] 管理者画面でIP制限をかけてみる

[CakePHP] 管理者画面でIP制限をかけてみる

cakelogo

CakePHPでは、管理者用のURLを設定できるようになっている。

app/config/core.phpにて、

Configure::write(‘Routing.admin’, ‘admin’);

を有効にすれば、たとえばおなじPostsコントローラー内に、admin_indexというfunctionを作っておけば、

http://hogehoge.com/admin/posts

で、管理者用としてルーティングしてくれるようになる。

ただ、これは単にルーティングをしてくれるだけであって、認証などの実装はされていない。

で、たとえばBasic認証などは以下のエントリーが参考になります。

今作っているシステムで、Basic認証までは。。。。ということで、IP制限をかけるようにしてみた。

なお、コンポーネントの使い方は上記の参考URLのコンポーネントを使わせて頂きました。

app/controllers/components/admin_auth.php

<?php
class AdminAuthComponent extends Object {

	public function startup(&$controller) {
		if (!preg_match("/^" . Configure::read('Routing.admin')  . "_/i", $controller->action)) {
			return;
		}

		if (empty($_SERVER['REMOTE_ADDR'])) return false;
		$ip = $_SERVER['REMOTE_ADDR'];

		if (!preg_match("/192\.168\.0\..*/",$ip)){
			echo "Access Denied!";
			exit;
		}
	}
}
?>

そして、app_controller.phpに以下のように追加する。

<?php
class AppController extends Controller {
	public $components = array('AdminAuth');
}
?>

う~ん、なんて便利なんだ!


CakePHPによる実践Webアプリケーション開発

Sponsored Link

facebook

zenback

Home > CakePHP > [CakePHP] 管理者画面でIP制限をかけてみる

Subscribe This Blog
Subscribe This Blog
FeedBurner

Search
Categories
Tag Cloud
Twitter Counter
Archives
My Other Blogs

Return to page top