0

HMVC パターンと CodeIgniter を使用して Web サイトを開発しています。

ユーザーがログインしていない場合、アクセスできないモジュールがいくつかあります。

ユーザーがログインすると、セッションが設定されますis_logged_in

今、私はこのコードを試してみましたが、正常に動作しているように見えますが、安全かどうかはわかりません.

これをコントローラーのコンストラクターに入れます:

if ($this->session->userdata('is_logged_in') == NULL) { exit; }

これは安全ですか、それともバイパスできますか?

4

2 に答える 2

0

セキュリティを呼び出すコンストラクターを持つようなコア サブクラス コントローラーを作成しMY_Controller、それを保護したいコントローラーに拡張することで、コントローラー全体に 1 つずつ配置するよりもはるかに優れているため、コードの再利用性が向上します。セキュリティに関する質問については、システムだけが読み取ることができる一意のセッションを追加するだけで十分です。

于 2013-01-25T14:53:40.993 に答える
0

// ヘルパー ヘルパーを作成します。例: my_login_helper

if (!function_exists('is_logged_in')){

    function is_logged_in(){
        // Get current CI instance
        $CI =& get_instance();
        // use $CI->session instead of $this->session
        $user = $CI->session->userdata('is_logged_in');
        if (!isset($user)) { return false; } else { return true; }
    } 

  }

// ユーザーがログインしているかどうかを確認するためだけに、すべてのコントローラーで同じコードを繰り返します // make My_Controller

  function _remap($method)
    {
        if (method_exists($this, $method) && $this->my_login_helper->is_logged_in())
        { $this->$method(); }
        else {  redirect('/auth/'); }
    }
于 2013-01-25T15:08:40.703 に答える