15

Tomcat Web アプリケーションで特定の URL へのアクセスを制限したいと考えています。特定のパターンに適合する URL へのアクセスを 3 つの既知の IP アドレスのみに許可する必要があります。

例えばhttp://example.com:1234/abc/personId

どうすればこれを達成できますか?

4

4 に答える 4

12

org.apache.catalina.filters.RemoteAddrFilterを使用して、保護するURLにマップします。構成の詳細については、 http://tomcat.apache.org/tomcat-7.0-doc/config/filter.html#Remote_Address_Filterを参照してください。

于 2012-05-08T12:27:25.427 に答える
4

server.xml でこれを行うことができます。

 <Valve
    className="org.apache.catalina.valves.RemoteAddrValve"
        deny="117.40.83.*,122.224.95.*,119.255.28.*,218.8.245.*,218.85.139.*,219.117.197.*,124.89.39.*,58.18.172.*,180.153.225.*"
        />

(これらは実際の IP アドレスです: 所有者の皆様、理由はご存知でしょう :-|) が、ご覧のとおり、これは実際にはイネーブラーではなくブロッカーです。より良い解決策は、Apache HTTPD をその前に Deny All ステートメントと Allow From ステートメントで配置することです。これにより、サービスへのアクセスに必要な 3 つの IP アドレスのみを許可できます。

于 2012-05-08T12:21:38.797 に答える
3

次のようなものを使用してipsをブロックでき、プロキシの背後にいる場合:

<Context path="/manager" docBase="manager" reloadable="true" privileged="true" >
  <Valve className="org.apache.catalina.valves.RemoteIpValve"/>
  <Valve className="org.apache.catalina.valves.RemoteHostValve" allow="<your IP regex>"/>
</Context>
于 2012-10-11T15:37:24.093 に答える
0

次の理由から、IP アドレスによるアクセスを制限しません。

  • 10.0.0.0/24 などの内部アドレスを使用すると、この範囲全体を暗黙的に信頼することになります。侵害された場合はどうなりますか?
  • すべての顧客が静的 IP アドレスを取得できる、または取得できるわけではありません (一部の顧客にアクセスを許可したい場合)。
  • x-forwarded-forプロキシがヘッダーをサポートしていないゲートウェイ デバイスの背後にある顧客は、ゲートウェイ デバイスの IP だけを持つことになります。IP を信頼すると、ゲートウェイの背後にある全員が信頼されます。ここでも、一部の顧客にアクセスを許可する場合を想定しています。

代わりに、一部の呼び出しに特定のユーザーのみがアクセスできるシステムを実行する必要がある場合は、認証を使用します。この目的には、SSL クライアント側の証明書が非常にうまく機能します。または、 OAuthなどを使用することもできます。

于 2012-05-08T12:16:39.907 に答える