📄 安全说明.txt
字号:
多重服务器的安全防护模式
当在同一台主机(或同一网络文件系统)上的Apache httpd Web服务器与Tomcat之间
共享网页的实际目录时,请留意其个别安全防护模式间的相互作用。当你有“受保护的
目录”时,这会特别重要。如果使用在第五章说明的简单的共享模式,如使用个别端口
号的负载分享,或从Apache切换至Tomcat的代理机制,则服务器将具有能读取彼此文
件的权限。在这些状况下,请注意Tomcat并不会保护如.htaccess的文件,而Apache
httpd或微软的IIS(Internet Information Server,Internet信息服务器)也不会保护Web
应用程序的WEB-INF或META-INF目录。这些情形都有可能导致重大的安全漏洞,所
以,我们建议你在使用这些特别的目录时,要格外小心。你应该改用第五章后面章节所
述的连接器模块。这种解决方案比较复杂,但是却能保护WEB-INF及META-INF的内
容,从而避免被本地Web服务器读取。
若要让Apache httpd保护WEB-INF及META-INF目录,请在httpd.conf中加入下列的
内容:
<LocationMatch"/WEB-INF/">
AllowOverride None
deny from all
</LocationMatch>
<LocationMatch"/META-INF/">4第六章
133
AllowOverride None
deny from all
</LocationMatch>
你也可以把Tomcat配置为将所有对.htaccess的请求都送至错误网页,不过这比较麻烦。
在Tomcat 4的一般安装中,请将下列的servlet-mapping加到在$CATALINA_HOME/
conf/Web.xml文件的servlet-mapping项目后面:
<servlet-mapping>
<servlet-name>invoker</servlet-name>
<url-pattern>*.htaccess</url-pattern>
</servlet-mapping>
这会将所有Web应用程序中对.htaccess的请求映射到invoker servlet,由于无法加载名
为invoker的servlet类,因此会产生“HTTP 404:Not Found”的错误网页。从技术层
面讲,这种形式并不好,因为如果Tomcat可以找到并加载所请求名称的类(.htaccess),
它便可能执行该类而非输出消息错误消息。不过,因为类名不能以句点开头,所以这还
是一种相当安全的解决办法。
此外,如果没有使用invoker servlet,则应禁用它;一旦将其禁用,就无法对应特定名
称的请求。将Tomcat配置为不服务.htaccess文件的方法是编写、编译,以及配置设定
产生自定义错误的servlet,以便提供这些被禁止的请求的对应目录。不过,这些内容已
属于编程的课题,详情请参考由Jason Hunter所著的《Java Servlet Programming》
(O'Reilly)。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -