■ユーザーズフォーラム リニューアルのお知らせ
新規投稿は新ユーザーズフォーラムにお願いします。

Re: Admin領域へのIPアドレスによるアクセス制限

yosyos > Re: Admin領域へのIPアドレスによるアクセス制限 @ 2011/2/28 22:04
cruel さん

スマートURLが使えない環境で運用したことがなかったので
お門違いな回答をしてしまったようで申し訳ないです。

私ならどうやってしのぐかを少し考えてみました。
模範解答には程遠いと思いますが・・・

1.baser/controllers/users_controller.php を app/controllers/users_controller.phpにコピーしてcruelさんの処置を施す。

baserをバージョンUPすることを考えて、baser/以下のソースに手を加えないことを考えます。
そのために、app/に移動してコントローラーをオーバーライドするようにします。
但し、バージョンUPをするとコピーしたソースを更新(マージ)しなくてはならないので、結果的には同じことかなと・・・

2.app/config/bootstrap.phpに処置を加える。

本来ならばapp/controllers/app_controller.phpにフックを仕込みたいところですが
baser/controllers/app_controller.phpがあるので、できませんでした。
なので、baser/controllers/app_controller.php実行以前に仕込める場所はと考えると
app/config/以下の何かか。

cakePHP 及び baserCMS の規範に沿っていないのですが
bootstrap.php仕込みの方法で考えました。

例えば以下のような感じで
$hosts = array('192.168.0.1','192.168.1.1','localhost','127.0.0.1');
if(preg_match("/^\/admin.*/i",$_SERVER['PATH_INFO'])){//adminが含まれていたら
        if(!in_array($_SERVER['REMOTE_ADDR'],$hosts)){//$hosts以外のIPはルートにリダイレクトする
                header("HTTP/1.1 301 Moved Permanently");
                header("Location: http://$_SERVER[HTTP_HOST]/");
                exit();
        }
}


どちらもスマートじゃないのですが、やむを得ずの場合、私ならこうやっちゃうだろうな・・・
という回答でしかないのですがいかがでしょうか?

※この記事をご覧の方で同様の事案に対応されている人がいましたら、私も教えて頂きたいです。
ログイン
ユーザー名:
パスワード:


  新規登録 / パスワード紛失

検索

facebook
フォーラムで悩みが解決した場合など、よかったら「いいね!」をポチっとクリックしてください!質問の回答者や開発者の励みになります

フォーラムガイド


関連リンク

オンライン状況
15 人のユーザが現在オンラインです。 (15 人のユーザが フォーラム を参照しています。)

登録ユーザ: 0
ゲスト: 15