小编典典

仅授予特定IP地址访问JSP文件/文件夹的权限

jsp

我使用JSP和servlet制作了CMS应用程序。我没有使用任何类型的框架。CMS有2个部分:

  1. 前端
  2. 管理员(后端)

www.example.com例如,如果将其托管在上,那么我的所有前端站点都将显示给所有用户。

但是www.example.com/admin必须可以从几个IP地址访问。并非来自所有用户。

我找到了这些链接:

链接1看起来有些混乱,链接2看起来不错,但是我没有使用JBoss。

在“堆栈溢出”链接中,他们没有提及如何使用它。


阅读 447

收藏
2020-06-08

共1个答案

小编典典

据我从您的问题中了解到,您将Apache Tomcat用作Web服务器。在这种情况下,请使用“
远程地址过滤器”来限制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地址或正则表达式模式。但是在某些情况下,正则表达式使您在验证地址方面具有很大的灵活性。

如果使用的是65版本的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块。还要应用登录身份验证以提高安全性。

2020-06-08