2016-10-11 14 views
0

私は共有Webサーバー(DreamHostでホストされている)でDjangoアプリケーションを実行しようとしています。 IPアドレスのホワイトリストに基づいてロックしたいインターフェイスが1つありますが、どうやってそれを行うのか分かりません。このインタフェースは仮想URLに存在します(言い換えれば、URLに対応する物理ファイルはサーバ上に存在せず、渡されたURLに基​​づいてDjangoの内部構造が正しいものになります)。私の共有ホストはApacheをWebサーバーとして使用し、必要なすべての要求をPassengerに渡します。IPアドレスで仮想URIへのアクセスを制限する

私は私のサイトで /manage URLをご覧ください。
SetEnvIf Request_URI ^/manage require_auth=true 

AuthUserFile /home/myuser/.htpasswd 
AuthName "Who Goes There?" 
AuthType Basic 

order deny,allow 
deny from all 
Satisfy any 
Require user my_web_user 
Allow from env=!require_auth 

が、私はちょうど私が期待するような資格情報の入力を求められます:

は、私は現在、私のサイトのルートに次の内容の.htaccessファイルを持っています。他のURLを訪れても私には聞こえないので、このルールセットはうまくいくようです。

しかし、IPアドレスホワイトリストをミックスに追加する方法を理解できません。 Satisfy anyディレクティブは基本的に、その下のステートメントの論理和です。理想的には、IP に基づいてこのURLへのアクセスを制限することができます。ユーザーにログインさせる必要があります。しかし、その特定のパスについてはのみです。

は単純なものは、私がここに欠けている、またはApache /旅客のセットアップが私のケーキを持って、あまりにもそれを食べることができることから私を妨げる可能性がありますか?

答えて

0

あなたが一致しないすべてのものは認証が必要になりますようにCIDR表記は、正常に動作します「iprangeから許可」と許可した範囲を指定することができます。例えば

AuthUserFile /home/myuser/.htpasswd 
AuthName "Who Goes There?" 
AuthType Basic 
Order deny,allow 
Allow from 192.168.0.0/16 
Satisfy any 
Require user my_web_user 

これは、範囲192.168.0.0内のすべてではないが認証しなければならないことを意味します。

+0

理想的には、ユーザーがホワイトリストの範囲から来ている場合でも認証を要求したいと思います。 –

+0

その後、「許可する」を削除し、誰もが認証するだけで十分であることを確認します。 –

関連する問題