Standing on the Shoulder of Linus

Home / 2014 / 8月 / 14 / Novius OS でログイン可能なリモートホスト(IP)を限定する

Novius OS でログイン可能なリモートホスト(IP)を限定する

Novius OS でログイン可能なリモートホスト(IP)を限定する方法です。

Novius OS のデフォルトでは、ログインできるIPアドレスを限定していません。不特定多数のユーザーがログインする場合は、この設定にせざるを得ないかもしれません。しかし、ログインするユーザーが決まっている場合は、ログインできるIPアドレスを限定してしまっても問題無いでしょう。ということで、ログインできるIPアドレスを制限するコードを書いてみました。

下記のコードを、local/bootstrap.phpに貼付ければOKです。

<?php
// Copyright Fumito MIZUNO 2014
// License : AGPL ver3.0 or later
// Event On login success
\Event::register('admin.loginSuccess', 'disconnect_from_invalid_ip');
\Event::register('admin.loginSuccessWithCookie', 'disconnect_from_invalid_ip');

// invalid ip user will be redirected
function disconnect_from_invalid_ip() {
    if (!is_allowed_ip(\Input::ip()))
    {
        \Nos\Auth::disconnect();
        \Response::redirect('/');
    }
}

// check the IP
function is_allowed_ip($ip)
{
    $valid_ips = array('127.0.0.1', '192.168.33.10');
    if (in_array($ip, $valid_ips))
    {
        return true;
    }
    else
    {
        return false;
    }
}

$valid_ipsで指定するIPアドレスを自分のものに置き換えれば、指定したIP以外からのログインを不許可にする(ログインしても即座にログアウトする)ことができます。

admin.loginSuccessとadmin.loginSuccessWithCookieというイベントにフックして動作させています。イベントは、FuelPHP自体に実装されている機能です。Novius OSでもこの機能が使えるため、Novius OSはカスタマイズしやすいです。

もう少し機能追加したものをgithub 上に掲載しています。

関連

Posted in cms | Tagged セキュリティ
← 2014年版 Road to WordCamp from Nagoya to Tokyo nagoya.php第6回に参加しました →

アーカイブ

人気の投稿とページ

  • キンドル本を印刷する(PDFに変換する)方法
  • 名古屋駅から国際センターまでの道のり(徒歩)
  • AGPL ライセンス(GPLとは似ているが違いもある)
  • 6年使ったイーモバイル(Y!mobile)を解約手続。店頭でSIM返却
  • JP-Secure SiteGuard WP Pluginは不正ログイン防止に役立つか

プロフィール

水野史土:月70万PVホームページ制作会社のレスキューワーク株式会社で、PHPソフトウェアのサポートを行っている。concrete5コミュニティリーダー、Novius OSコアコード貢献者でもある。 詳しくは管理者詳細参照。
大好評WordPress書籍「WordPressユーザーのためのPHP入門 はじめから、ていねいに。」サポートページ

Copyright © 2015 Standing on the Shoulder of Linus.