我使用JSP和servlet制作了CMS应用程序。我没有使用任何类型的框架。CMS有2个部分:
www.example.com例如,如果将其托管在上,那么我的所有前端站点都将显示给所有用户。
www.example.com
但是www.example.com/admin必须可以从几个IP地址访问。并非来自所有用户。
www.example.com/admin
我找到了这些链接:
链接1看起来有些混乱,链接2看起来不错,但是我没有使用JBoss。
在“堆栈溢出”链接中,他们没有提及如何使用它。
据我从您的问题中了解到,您将Apache Tomcat用作Web服务器。在这种情况下,请使用“ 远程地址过滤器”来限制IP地址的访问。它允许根据比较结果将请求客户端的IP与正则表达式进行比较,以允许或禁止请求。
Apache Tomcat
如果使用Tomcat 7,则需要使用类RemoteAddrFilter并在应用程序的配置文件中为必需的IP定义正则表达式web.xml:
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:
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地址范围是有意义的。
localhost
127\.0\.0\.1
但是请不要忘记,在某些情况下,可以使用代理服务器来绕开IP块。还要应用登录身份验证以提高安全性。