我想添加我的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('*'),
),
);
}
'params'=>array(
// this is used in contact page
'allowedIps'=>array('22.150.133.177'),
),
答案 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数组,要么更好地修改系统以直接从组件检索信息。