0

SecurityComponentCakePHP を使用して、SSL を使用してアプリのリクエストを強制的に実行したいと考えていrequireSecure()ます。

私の問題は、デフォルトではこれがブラックリストの方法論であることです。そのコントローラーで明示的に禁止されていない限り、デフォルトで安全でないアクセスを許可します。ホワイトリスト方式に切り替えたい - そのコントローラで明示的に許可しない限り、デフォルトで安全でないアクセスを拒否します。

この機能は SecurityComponent に組み込まれていますか? そうでない場合、どうすればこれを手動で設定できますか?

4

1 に答える 1

0

これがデフォルトで組み込まれているようには見えません。$requireSecureコントローラーのプロパティを作成し、条件付きで を呼び出すことrequireSecure()で、これをシミュレートできますAppController::beforeFilter()。実装方法は次のとおりです。

AppController.php:

public $requireSecure = true;

public function beforeFilter() {
    if ($this->requireSecure) {
        $blacklist = is_array($this->requireSecure) ? $this->requireSecure : array('*');
        $this->Security->requireSecure($blacklist);
    }
}

ホワイトリストに登録されたコントローラー:

public $requireSecure = false;

コントローラー、方法によって異なります(ブラックリストであることに注意してください$requireSecure):

public $requireSecure = array('login');

これにより、デフォルトで SSL を要求するという目的が達成されますが、必要に応じてコントローラでこの要件を明示的にオーバーライドできます。

于 2012-10-16T18:11:59.333 に答える