Pages

2010/09/23

Apache httpd のコンフィグで、ホストヘッダ判別によるアクセス制限をする

NameBaseのVirtualhostじゃなく、Host: のホストヘッダで画面制御をしているWEBアプリのアクセス制限が必要になりました。
 

ああ、Virtualhostなら普通にmod_authz_host(旧mod_access)のAllow,Denyでいいのに。。
パッケージなのでアプリに直接手を入れたくないから他で何とかしなければ。
 

という事で、こんな要件をApache httpdのコンフィグで実装してみることに。

  1. リクエスト先のホストが"staffonly.example.jp"だったらアクセス拒否、それ以外宛は許可

  2. 特定のIPからの要求だけはstaffonlyも許可


 

結局mod_setenvifに手伝ってもらってできた。


<Location />
SetEnvIfNoCase ^HOST$ "staffonly.example.jp" STAFFONLY
SetEnvIfNoCase Remote_Addr (^127\.|^192\.168\.1\.50$) STAFFONLY_IP
Order Deny,Allow
Deny From env=STAFFONLY
Allow from env=STAFFONLY_IP
</Location>

 

これで大丈夫だろう。
 

ちなみにソフトは某パラレルスの、 providerとかresaler とか出てくる奴。
コンフィグ勝手に書き換わらないか注意しないとね。
 


参考サイト:http://www.askapache.com/htaccess/setenvif.html

0 件のコメント:

コメントを投稿