Yii2中限制访问某控制器的IP(IP白名单)
有关Yii2.0鉴权之访问控制过滤器参考这篇文章 http://www.yiiframework.com/doc-2.0/guide-security-authorization.html
这里主要说下怎么在控制器中限制访问的IP:
use yii\web\Controller; use yii\filters\AccessControl; class SiteController extends Controller { public function behaviors() { return [ 'access' => [ 'class' => AccessControl::className(), 'only' => ['login', 'logout', 'signup'], 'rules' => [ [ 'ips' => [ '127.0.0.1'],//这里填写允许访问的IP 'allow' => true, ], ], ]; } // ... }
访问规则支持很多选项,下面是一些简要说明,你也可以通过扩展yii\filters\AccessRule来创建你自己的访问规则类:
-
allow
:指定这是一条允许(allow)还是拒绝(deny)规则。 -
actions
:这条规则匹配那些动作(action)。是一个动作ID的数组,区分大小写,假如这个选项设置为空或者不设置,那么这条规则适用于所有动作(action)。 -
controllers
:指定这条规则适用于那些控制器(controller)。值是控制器ID数组,区分大小写,设置为空或者不设置,意味着适用于所有控制器(controller)。 -
roles
:指定这条规则适用于那些用户角色。有两个认可的特殊角色,都是通过yii\web\User::$isGuest来检查。?
:匹配游客(未认证用户),@
:匹配已认证的用户,未设置或设为空,则匹配所有角色。 -
ips
:匹配那些客户端IP。ip地址可以使用通配符(*),比如:192.168.*。为设置或设为空则匹配所有IP。 -
verbs
:匹配那些请求方式(如:GET,POST)。区分大小写。 -
matchCallback
:指定一个PHP回调,以确定应用该规则。 -
denyCallback
:PHP回调,当规则禁止访问的时候会被调用。