0

メンバーシップ エリアへのアクセスを許可することが、htaccess allow またはすべてのページに対してチェックする IP の PHP 配列によってより効率的になるかどうかを知りたいです。私は主にパフォーマンスに興味があります。

数百または数千の IP を扱う場合、これらの方法のいずれかが推奨されますか?

より良い方法はありますか?

アップデート:

IP をスニッフィングし、IP が認識されるかどうかに応じて、ページビューごとに IP をチェックする必要がないように、メンバーシップ セッションまたは非メンバーシップ セッションを開始するとどうなりますか?

4

3 に答える 3

2

php スクリプトを実行するために php ハンドラを実行する必要がないため、おそらく htaccess を使用する方が速いでしょう。を利用するIPアドレスをブロックするために私が与えた同様の答えがありRewriteMapます. これらの IP からのアクセスを拒否する代わりに、アクセスを許可する必要があります。

RewriteMap allow_ips txt:/path/to/allow_ips.txt

RewriteCond ${allow_ips:%{REMOTE_ADDR}|0} =1
RewriteRule ^protected/path - [L]

RewriteRule ^protected/path - [L,F]

allow_ips .txt ファイルの内容は次のようになります。

12.34.56.78 1
11.22.33.44 1
etc.

RewriteMapdirectは server または vhost config のいずれかにある必要があります。htaccess からマップを定義できますが、そこで使用することもできます。

マップを使用できない場合は、すべての IP を . で列挙する必要がありますAllow。保護したいディレクトリの htaccess ファイルで:

Order Allow,Deny
Deny from all
Allow from 12.34.56.78
Allow from 11.22.33.44
...

より良い方法はありますか?

おそらく最善の方法は、htpasswd を介してユーザー/パスワードを実装することです。ここにチュートリアルがあります。Auth*次に、保護したいディレクトリのhtaccessファイルにそれらを入れることができます。それだけです。単純。

于 2013-04-06T08:27:27.360 に答える
0

.htaccess を使用できます

<Files 403.shtml>
   order deny,allow
   deny from all
</Files>

allow from 142.4.98.37
allow from 193.105.210.217
allow from 142.4.98.35

//Allow those ip which you want
于 2013-04-06T08:34:05.853 に答える