-1

Yii プロジェクトの IP フィルタリング機能を追加したい..以下のコードは、この機能を実際に追加します (役立つ)..しかし、プログラム (yii プロジェクト) が実行された後、実行時にこの機能を追加したいと考えています。別の IP アドレスを許可 IP リスト (ホワイトリスト) に追加し、他の IP アドレスをブロック リスト (ブラックリストなど) に追加することを拒否する場合があります。これらの機能をプロジェクトに追加する方法について教えてください..

これからよろしくお願いします

#in the SiteController
public function accessRules() {
        return array(
            array('allow',
            'actions' => array('index','view', 'create', 'update', 'manage'),
            'ips' => Yii::app()->params['allowIps'],//updated to pull list from Yii
           ),
            array('deny',
                'actions' => array('index','view', 'create', 'update', 'manage'),
                'ips' => array('*'),
            ),
        );
    }

/protected/config/main.php で

    'params'=>array(
            // this is used in contact page
            'allowedIps'=>array('22.150.133.177'),
    ),
4

2 に答える 2

0

新しい IP を追加する場合

array_push(Yii::app()->params['allowIps'],'4.4.4.4');

IPを削除する場合

if (($key = array_search('4.4.4.4', Yii::app()->params['allowIps'])) !== false) {
    unset(Yii::app()->params['allowIps'][$key]);
}
于 2013-11-13T03:41:16.023 に答える
0

もう1つの答えは、特定のセッション中にのみ機能し、その後ブラックリストが元に戻ります.

適切な情報をデータベース (またはそれを変更できる他のシステム) に保存するセキュリティ コンポーネント (作成する) を使用することをお勧めします。次に、セキュリティ コンポーネントに params 配列を変更させるか、システムを変更してコンポーネントから直接情報を取得するようにします。

于 2013-11-13T16:44:05.417 に答える