据我从您的问题中了解到,您将其Apache Tomcat
用作网络服务器。在这种情况下,请使用远程地址过滤器来限制 IP 地址的访问。它允许将请求客户端的 IP 与正则表达式进行比较,以根据比较结果允许或阻止请求。
如果您使用Tomcat 7,您需要使用类RemoteAddrFilter并在应用程序的配置文件中为必要的 IP 定义正则表达式web.xml
:
<filter>
<filter-name>Remote Address Filter</filter-name>
<filter-class>org.apache.catalina.filters.RemoteAddrFilter</filter-class>
<init-param>
<param-name>allow</param-name> <!-- or deny -->
<param-value>10\.10\.1[12]\..*</param-value> <!-- regexp for your ip adress -->
</init-param>
</filter>
<filter-mapping>
<filter-name>Remote Address Filter</filter-name>
<url-pattern>*/admin</url-pattern> <!-- the url of your admin page -->
</filter-mapping>
您可以使用硬编码的特定 IP 地址或正则表达式模式。但在某些情况下,正则表达式在地址验证方面为您提供了很大的灵活性。
如果您使用6或5版本的 Tomcat,您需要使用类RemoteAddrValve并在 Tomcat 的配置文件中定义以下行server.xml
:
<Valve className=”org.apache.catalina.valves.RemoteAddrValve” allow=”10\.10\.1[12]\..*”/>
或者
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
deny="86.57.158.37, 213.117.195.*, 124.86.42.*" />
有关使用请求过滤阀的更多信息。
还有一篇关于使用 Tomcat 保护管理 Web 应用程序的有趣文章。
顺便说一句,不拒绝localhost
测试请求很方便。127\.0\.0\.1
因此,添加到您允许的 IP 地址范围是有意义的。
但不要忘记,在某些情况下,可以使用代理服务器绕过 IP 块。还应用登录身份验证以获得更好的安全性。