9

私はyiiフレームワークが初めてです。私のサイトでは、gii にエラーが表示されます

エラー 403 このページへのアクセスは許可されていません。

このように構成ファイルにgiiを設定します

'gii'=>array(
    'class'=>'system.gii.GiiModule',
    'password'=>'test123',
    'ipFilters'=>array('192.168.0.101','127.0.0.1','::1'),
),

それでもエラーが表示されます

4

11 に答える 11

10

これは私のために働いた唯一の行です:

'ipFilters'=>array($_SERVER['REMOTE_ADDR']),
于 2012-12-30T16:26:02.800 に答える
4

これを修正するには、メインの構成ファイルで Gii のモジュール セクションを探し、

独自の IP を含む ipFilters 配列:

// 保護された/config/main.php

配列を返します(

...

'modules' => array(

    'gii' => array(

        'class'     => 'system.gii.GiiModule',

        'password'  => 'Enter Your Password Here',

        'ipFilters' => array('127.0.0.1', '192.168.1.7'),   // EDIT TO TASTE

    ),

    ...

ipFilters プロパティには、好きなだけアイテムを含めることができ、それらはストレートにすることができます

「192.168.1.*」などの IP アドレスまたはワイルドカード。

基礎となるプラットフォームがサポートしている場合、IPv6 アドレスもサポートされ、「::1」

localhost を表します (構成によっては必要になる場合があります)。

Gii をあまりにも多くのユーザーに公開しないように注意してください。セキュリティ リスクにならないようにしてください。

注: Yii 1.1.6 は、デフォルトのフィルターをストック構成ファイルに直接追加します。

// 削除すると、Gii はデフォルトで localhost のみになります。味に合わせて慎重に編集してください。

'ipFilters'=>array('127.0.0.1','::1'),

あなたの問題を解決したことを願っています..

于 2012-08-03T09:43:47.753 に答える
4

あなたは設定することができます...

'ipFilters' => false

ドキュメントからhttp://www.yiiframework.com/doc/api/1.1/GiiModule#ipFilters-detail ...

すべての IP に gii へのアクセスを許可する場合は、このプロパティを false に設定できます (結果が分からない限り、これを行わないでください!!!)。

于 2013-02-05T22:37:18.857 に答える
1

sandy8086 の良い答えに続きます。リモート ホストがデュアル スタック (IPv6/IPv4) の場合、動的 IPv6 アドレスがサブネット プレフィックス範囲に自動的に割り当てられることがあります。ワイルドカード「*」を使用する IPv4 方式は、IPv6 アドレスでも採用できます。したがって、「ab01:1234:5678:abcd:*」のようになります。/64 プレフィックスがある場合、これは IPv6 ネットワーク上の任意のアドレスと一致します。 . これは私にとってはうまくいき、「エラー 403」に問題があり、Yii::app()->request->userHostAddress を使用して、IPv6 経由で接続していることを発見したときにペニーが落ちました。

于 2013-02-05T22:03:27.967 に答える
0

開発サーバーがどこにあるか (同じマシン、LAN、WAN) と、サーバーに対して IP アドレスがどのように変化するかを検討してください。

  1. サーバーがクライアント (ブラウザー) と同じマシンで実行されている場合、localhost 自体からページを要求すると、IP アドレスは 127.0.0.1 になり、デフォルト設定が機能します。

  2. サーバーがローカル エリア ネットワーク (LAN) 内の別のマシン上にある場合、通常、サーバーの IP アドレスは 192.168.1.20 のようになります。それを見つけてコードを調整できます。

  3. サーバーが Web 全体 (WAN) にある場合は、

    • 静的 IP アドレス (運が良ければ)
    • または固定範囲内の動的 IP アドレス、
    • さらに悪いことに、多かれ少なかれ予測不可能な動的 IP アドレスです。

最後の(予測不可能な動的IPアドレス)が当てはまる場合にのみ、リスクも指摘しているschmunkによるこの回答に従います。

使用$_SERVER['REMOTE_ADDR']は私には不必要に思えます。

于 2014-03-03T18:41:31.837 に答える
0

構成ファイルの下部に、事前に生成された構成がないことを確認してください。上記で追加したものはすべて上書きされます。

if (YII_ENV_DEV) {
    // configuration adjustments for 'dev' environment
    $config['bootstrap'][] = 'debug';
    $config['modules']['debug'] = 'yii\debug\Module';

    $config['bootstrap'][] = 'gii';
    $config['modules']['gii'] = 'yii\gii\Module';
}

なる必要があります (例、誰でも許可):

if (YII_ENV_DEV) {
    // configuration adjustments for 'dev' environment
    $secure = ['allowedIPs' => ['*']];

    $config['bootstrap'][] = 'debug';
    $config['modules']['debug'] = ['class' => 'yii\debug\Module'] + $secure;

    $config['bootstrap'][] = 'gii';
    $config['modules']['gii'] = ['class' => 'yii\gii\Module'] + $secure;
}
于 2014-07-27T13:21:37.707 に答える
0

これを試して

    'gii' => array(
        'class' => 'system.gii.GiiModule',
        'password' => 'pasword',
        'ipFilters'=> false,
        'generatorPaths' => array(
            'bootstrap.gii'
        ),
    ),
于 2013-07-22T10:13:38.223 に答える
0

Gii を使用しようとすると 403 エラーが発生するのはなぜですか?

上記のリンクで問題が解決しない場合は、ランタイム フォルダーの appplication.log ファイルを調べて、何が問題なのかを確認してください。

于 2012-08-08T05:24:07.010 に答える