仅授予特定IP地址访问JSP文件/文件夹的权限
我使用JSP和servlet制作了CMS应用程序。我没有使用任何类型的框架。CMS有2个部分:
- 前端
- 管理员(后端)
www.example.com
例如,如果将其托管在上,那么我的所有前端站点都将显示给所有用户。
但是www.example.com/admin
必须可以从几个IP地址访问。并非来自所有用户。
我找到了这些链接:
- 链接1
- 连结2
- 堆栈溢出链接
链接1看起来有些混乱,链接2看起来不错,但是我没有使用JBoss。
在“堆栈溢出”链接中,他们没有提及如何使用它。
回答:
据我从您的问题中了解到,您将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地址或正则表达式模式。但是在某些情况下,正则表达式使您在验证地址方面具有很大的灵活性。
如果使用的是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块。还要应用登录身份验证以提高安全性。
以上是 仅授予特定IP地址访问JSP文件/文件夹的权限 的全部内容, 来源链接: utcz.com/qa/403368.html