如何设置Tomcat不允许通过IP直接访问呢?
更改host节点后虚拟目录设置失效,
发现内部ip泄露模式。
1、若公布于外网的服务器IP地址未备案,就有可能被工信部查封。这样备案的域名也会无法访问。
2、如果AppScan通过ip访问扫描,会有“发现内部ip泄露模式”的低级别的警告
安全风险
- 可能会收集有关Web 应用程序的敏感信息,如用户名、密码、机器名和/或敏感文件位置
若是tomcat服务,可通过简单的配置屏蔽IP地址直接访问。
比如,有服务器,IP地址是 192.168.1.2 ,相应域名是 www.hualai.net.cn
打开 %TOMCAT_HOME%/conf/server.xml文件
找到 Engine节点作如下
<Engine name="Catalina" defaultHost="www.hualai.net.cn">
<Host name="www.hualai.net.cn" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false"/>
<Host name="192.168.1.2" appBase="ipapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false"/>
</Engine>
相关的点是:
1. Engine 节点配置的 defaultHost 表明缺省访问的Host。defaultHost对应的名称必须存在于Engine节点下配置的host节点中。
当一台机器有多个IP,而按照规定只允许通过一个指定的域名访问时很有用。此时,把defaultHost指定为非域名对应的host,这样不通过域名访问时就都定位到指定的非域名HOST了
2. Host 节点 name 对应IP地址,以及域名。一个Host只有指定一个IP或域名。
3. Host 节点的 appBase ,对应的是存放web应用的目录。这里输入的目录相对于 %TOMCAT_HOME%,
如上面的www.hualai.net.cn对应的目录是 %TOMCAT_HOME%/webapps,而192.168.1.2 对应的目录是 %TOMCAT_HOME%/ipapps
4.如果想通过IP访问是给用于一个提示,比如:“您好!不允许通过IP直接访问本网站,请通过域名www.hualai.net.cn访问”
此时可以在%TOMCAT_HOME%/ipapps目录下创建一个名为 ROOT web工程(可以从 webapps目录下拷贝),同时将里面的 index.html文件修改成想要展示给用于的界面。
5.修改localhost为"www.hualai.net.cn"后,在%TOMCAT_HOME%/conf/Catalina/localhost下myTest.xml 中配置的虚拟目录会失效。因为配置虚拟目录的元素节点Context 是server.xml下Host 节点下的子节点,Catalina下的文件夹名字是根据host节点的name属性来的。现在Host 的name已经改www.hualai.net.cn 那么需要在%TOMCAT_HOME%/conf/Catalina 新建一个"www.hualai.net.cn"的文件夹,然后把localhost下的myTest.xml 文件拷贝到www.hualai.net.cn 文件夹下才能是虚拟目录继续有效