Yii动态IP过滤功能

时间:2013-11-12 19:44:00

标签: php dynamic yii ip lighttpd

我想添加我的Yii Project IP过滤功能。下面的代码实际上向我添加了这些功能(它有帮助)..但是我希望在我的程序(yii项目)之后在运行时添加这些功能运行时,用户可以在允许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'),
    ),

2 个答案:

答案 0 :(得分: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]);
}

答案 1 :(得分:0)

另一个答案仅在给定会话期间有效,然后黑名单将恢复。

我建议您使用一个安全组件(您编写)将相应的信息存储在数据库(或允许您更改它的其他系统)中。然后,要么安全组件修改params数组,要么更好地修改系统以直接从组件检索信息。